2013-06-20 2 views
6

Я пытался пройти учебные пособия Boost, но я застрял в ссылке на библиотеку файловой системы.Как правильно связать библиотеки boost в Linux

У меня Ubuntu 12.10. Установка была не так уж трудно

sudo apt-get install libboost-all-dev 

Это ставило все заголовки в/USR/местные/включить и скомпилирован источники в/USR/Lib/
[--headers]
[--binaries]

Я написал эту программу [--program]. Когда я попытался скомпилирован он

g++ -g tut1.cpp -o tut1 -lboost_system -lboost_filesystem 

получил эту ошибку: [--errors].
После небольшого поиска по http://www.boost.org/doc/libs/1_53_0/more/getting_started/unix-variants.html
Я попытался это:

g++ -g -I /usr/local/include/boost/ tut1.cpp -o tut1 -L /usr/lib/libboost_filesystem.a -lboost_system -lboost_filesystem 

, но не повезло. У меня были те же ошибки.

Поскольку я не могу поставить больше чем 2 ссылки в посте, здесь все ссылки
http://pastebin.com/DakVFn12

+0

Попробуйте изменить порядок библиотек в вашей ссылке. –

+0

Избегайте внешних ссылок ... они могут сломаться! –

ответ

3

Команда -L должна быть основной путь, где библиотеки содержатся, а не путь к конкретной библиотеке. Вместо этого попробуйте с -L /usr/lib/.

5

Я нашел ответ сам здесь:
http://www.richelbilderbeek.nl/CppLinkErrorUndefinedReferenceToBoostFilesystemDetailGet_current_path_api.htm
Похоже двоичные файлы не были в/USR/Lib, но в/USR/местные/Библиотека.
Так правильная команда для компиляции будет:

g++ -g tut1.cpp -o tut1 -L/usr/local/lib/ -lboost_filesystem 

@Yuushi, что была 1 проблема.

+2

Я сомневаюсь, что 'apt-get install libboost-dev-all' помещается в'/usr/local'. – rubenvb

+1

проверить себя; вот мой http://pastebin.com/rXv7wzTt – Athan

+0

Я не знаю, где вы получили свой пакет, но Ubuntu 12.10 [libboost-dev package] (http://packages.ubuntu.com/quantal/libboost- dev) просто втягивает [libboost1.49-dev] (http://packages.ubuntu.com/quantal/libboost1.49-dev), который [помещает все в '/usr'](http://packages.ubuntu. com/quantal/amd64/libboost1.49-dev/filelist) (включая [файловая система] (http://packages.ubuntu.com/quantal/amd64/libboost-filesystem1.49-dev/filelist) и [system] (http : //packages.ubuntu.com/quantal/amd64/libboost-system1.49-dev/filelist)) – rubenvb

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