Как использовать библиотеки с открытым исходным кодом в Windows? - PullRequest
1 голос
/ 17 января 2011

Существует множество библиотек с открытым исходным кодом, которые можно скомпилировать с помощью Visual Studio.Я портирую программу с Linux на Windows, но это зависит от ряда библиотек.Я не знаю, каковы лучшие практики использования библиотек в Windows.

В Linux эти библиотеки обычно являются частью дистрибутива.Например, чтобы использовать sqlite в Debian, вам нужно только установить libsqlite3-dev, и включаемые файлы и библиотеки (статические и динамические) автоматически устанавливаются и становятся доступными для вашей программы.

Если вам нужна версия, отличная от поставляемых вами дистрибутивов, вы можете скомпилировать ее в домашнем каталоге, установить в ~/include и ~/lib и установить соответствующие переменные среды такчто ваш компилятор включает эти каталоги в свой путь поиска.

Каков наилучший способ использовать библиотеки, которые распространяются в качестве источника в Windows?Если я создаю ссылки динамически, а не статически, существует ли простой способ скопировать необходимые библиотеки DLL в выходной каталог, чтобы упростить распространение (при условии соблюдения требований лицензии)?

Ответы [ 2 ]

1 голос
/ 17 января 2011

Вариант 1. Проекты, которые имеют двоичные дистрибутивы для Windows / не встроены в DevStudio.

например. OpenSSL.

Проекты, подобные OpenSSL, лучше всего загружать в свои собственные папки и создавать с использованием собственных сценариев. OpenSSL обычно устанавливает себя в C: \ OpenSSL в сборках Windows, поэтому сделав это, вы можете добавить C: \ OpenSSL \ include и C: \ OpenSSL \ lib в среду вашего проекта для доступа к заголовкам OpenSSL и библиотекам. Фактические dll-файлы, которые вам нужно будет скопировать из C: \ OpenSSL \ bin в промежуточную папку ваших проектов (обычно это SolutionDir \ Debug или Release).

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

Вариант 2 - Небольшие библиотеки, для которых легко создавать проекты Visual Studio (или они уже есть). Lua и sqllite попадают в эту категорию. Для проектов, которые достаточно малы, очень просто добавить их в свое решение в подпапке. Таким образом, вы можете получить их выходные данные, встроенные непосредственно в выходную папку решений, и вам не придется связывать предварительно собранные двоичные файлы в вашем решении, что значительно упрощает совместное использование проекта с другими.

Вариант 3. В качестве альтернативы вы можете создать собственную стандартизированную папку для продуктов проектов с открытым исходным кодом. Создайте C: \ oss \ include, c: \ oss \ lib, c: \ oss \ bin и т. Д., Добавьте эти пути в DevStudios lib и включите пути, добавьте c: \ oss \ bin в переменную PATH системы, когда вы создаете каждый из них. Проект OSS, скопируйте соответствующие файлы в эти места.

Опять же, несмотря на удобство, эта настройка затрудняет репликацию среды сборки на 2-м ПК, поэтому вам может потребоваться также сохранить все дерево C: \ oss в управлении исходным кодом.

1 голос
/ 17 января 2011

В Windows самый простой способ - создать свои собственные библиотеки DLL и включить их в программный каталог.

Да, он использует немного больше места, но HD в наши дни велики и позволяет избежать головной боли несовместимых версий (ад DLL). Windows также страдает от нескольких морщин с версиями библиотек, созданными с использованием разных компиляторов, поэтому отправка собственных сборок безопаснее всего

...