2013-11-16 2 views
0

У меня есть проект C++, который компилируется в github, причем многие разработчики добавляются в качестве участников. Некоторые из исходного кода довольно чувствительны с точки зрения IP ...скрыть секретный код в проекте C++

Есть ли способ скрыть часть кода из проекта? Проекту нужен этот код для запуска, но разработчикам не нужно обновлять ir или читать его.

Спасибо!

+0

Просто любопытный вопрос: какая лицензия - весь проект? – Erbureth

+1

Итак, вы хотите использовать вклад других, но не использовать их? –

+0

Мы не пытаемся вообще скрывать вклад других людей. Я имел в виду, что иногда вам нужно предоставить доступ к ** вашему собственному коду ** другим разработчикам. И вы хотели бы (насколько это возможно) защитить его повторное распространение. – mga

ответ

0

Скомбинировать чувствительный код в динамически связанную библиотеку (.DLL в Windows) и публиковать ее только вместе с заголовочными файлами. В качестве альтернативы, скомпилируйте его в статическую библиотеку и потребуйте, чтобы ваши другие участники повторно привязывались при каждом обновлении.

Используйте стандартные методы, такие как Pimpl, чтобы гарантировать, что ваш заголовочный файл содержит только интерфейс и никакой реализации.

Примечание. Определенный достаточно человек всегда может выяснить, что делает ваш код, разобрав его. Однако этот метод не позволит им увидеть исходный код.

+0

Да, я думаю, что библиотеки могут быть единственным способом. Досадная часть состоит в том, что вам нужно предоставить одну библиотеку для каждой операционной системы ... Было бы здорово, если бы был способ репо (например, в github), в котором содержался исходный код, который другие разработчики/участники могли использовать как часть клонированный проект, но некоторые исходные коды не могут быть прочитаны. – mga

+0

@mga То, что вы описываете, невозможно, потому что вы сказали в вопросе: * «Проекту нужен этот код для запуска» *. Это означает, что вы должны предоставить либо читаемый исходный код, либо скомпилированный код. Если какой-либо исходный код не может быть прочитан (и вы не предоставляете двоичные файлы), а проекту нужен этот код для запуска, тогда никто не сможет запустить проект. – JBentley

+0

Я думаю, вы правы. Я, вероятно, думал о волшебном способе, когда «чувствительный код» в проекте запутывается. Таким образом, люди не могут понять это. Но тогда проект как-то де-запутывает его, когда это необходимо для компиляции и сборки ... – mga

1

Если у вас есть какие-либо сомнения относительно лицензирования «чувствительного» кода, вы не должны распространять его.

Что касается альтернативных маршрутов, вы можете включить в него двоичные файлы с проектом. Таким образом, вы все равно можете использовать код в своем проекте, связывая двоичные файлы, но не обязательно должны предоставлять источник.

+0

В бинарниках, вы имеете в виду статическую библиотеку? – mga

Смежные вопросы