Eclipse удалось создать со статическими и динамически связанными библиотеками одновременно - PullRequest
3 голосов
/ 03 января 2012

Я использую управляемую функциональность Eclipse CDT. Создание проекта с использованием только динамических библиотек работает должным образом. Но boost_unit_test_framework должен быть связан статически, потому что он содержит основную функцию. В командной строке нет проблем связать динамические и статические библиотеки в смеси. Так что это рабочий пример:

g++ -L../Debug -L../boost/lib -o "Test" ./Test.o -ldynLib -Wl,-Bstatic -lboost_unit_test_framework -Wl,-Bdynamic

Dynlib и стандартные библиотеки, такие как libc, связаны динамически, а boost_unit_test_framework - статически. НО как я могу ввести эту информацию в настройках проекта? Я не вижу никакой возможности.

Может быть возможно пометить эту библиотеку в каждом проекте для статического связывания, например, в глобальном месте. Существует соглашение, используемое QNX ([руководство]). Можно использовать LIBPREF_library и LIBPOST_library для добавления опций до или после указанной библиотеки.

Обновление: Я до сих пор не знаю, как решить описанную проблему. Но пока я переключил свою систему сборки с Managed Make на CMake. Кроме того, теперь я использую Qt Creator, потому что он может индексировать повышение и не останавливает пользовательский интерфейс при обновлении некоторых внутренних структур ...

[руководство] http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/prog/make_convent.html#USEMAC

Ответы [ 2 ]

2 голосов
/ 03 февраля 2014

Динальные библиотеки входят в: Линкер / Библиотеки / Библиотеки (-l) Статические библиотеки входят в: Линкер / разное / Другие файлы и объекты

2 голосов
/ 13 марта 2012

Не думаю, что вам нужно указывать тип ссылки. Динамические библиотеки не могут быть связаны статически, и наоборот. В одном из моих проектов в разделе Свойства проекта -> Сборка C / C ++ -> Настройки у меня есть статические и динамические библиотеки, перечисленные в разделе Библиотеки. Кажется, они выясняют, какого они типа, и в любом случае прекрасно связываются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...