Как мне статически связать внешние библиотеки с моим исполняемым файлом? - PullRequest
1 голос
/ 06 апреля 2011

Я не хочу, чтобы конечное использование устанавливало библиотеки, поэтому было бы предпочтительнее иметь библиотеки, упакованные в моем exec.

это соответствующая строка в файле make:

hPif : src/main.o src/fann_utils.o src/hashes.o src/Config.o
    g++ -o  hPif src/main.o src/fann_utils.o src/hashes.o src/Config.o -static -lfann -lboost -L/usr/local/lib 

Я пытаюсь связать fann и boost и где-то читаю (http://www.adp -gmbh.ch / cpp /gcc / create_lib.html), что использование флага -static позволяет это сделать.

Что я делаю не так?

1 Ответ

1 голос
/ 06 апреля 2011

Флаг -static верен, но вы должны убедиться, что ваши библиотеки являются статическими библиотеками без зависимостей. Если они построены как общие (или имеют общие зависимости), gcc не будет связывать их статически (и / или у вас все еще будут библиотечные зависимости).

Для достижения этой цели может потребоваться перестройка библиотек Boost.

...