2011-02-10 2 views
3

Я пытаюсь использовать функции из boost :: filesystem, чтобы изменить текущий рабочий каталог (и при необходимости создать его). Я получаю ошибки, связывающие:Проблема с Boost.Filesystem

SBDir.cpp:(.text+0x23): undefined reference to `boost::system::generic_category()' 
SBDir.cpp:(.text+0x2f): undefined reference to `boost::system::generic_category()' 
SBDir.cpp:(.text+0x3b): undefined reference to `boost::system::system_category()' 

Но я утра линковки библиотек наддува ??!? Я использую следующие:

-lboost_system -lboost_system-mt -lboost_filesystem -lboost_filesystem-mt 

И я знаю, что он может найти их, потому что с -Wl, -t я получаю:

-lboost_system (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_system.so) 
-lboost_system-mt (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_system-mt.so) 
-lboost_filesystem (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_filesystem.so) 
-lboost_filesystem-mt (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_filesystem-mt.so) 

FWIW: Я использую GCC Ubuntu 4.4.3-4ubuntu54.4.3.

+0

предоставить команды компиляции и связывания –

+0

Буду рад, но поскольку они являются частью длинного Makefile, я не решаюсь спамить вопрос с ненужной информацией. Есть ли что-то конкретное, что я мог бы добавить? (например, вы смотрите конкретно на флаги компоновщика, которые я использую?) –

ответ

1

Так что я не мог понять, что пошло не так - поэтому я попытался отключить пакет повышения Ubuntu и построить его с нуля. Я обновил до 1.45.0 & теперь все ссылки. Не уверен, что это была проблема с версией или нет, но если я узнаю позже, я вернусь и обновлю.

2

У меня было это же сообщение об ошибке с boost 1.46 (стандартное с Ubuntu 11.10), и мне пришлось добавить -lboost_system, который мне не нужен в 11.04 и повысить 1.42. Он не отвечает на ваш вопрос, но, возможно, представляет интерес для других людей, приведённых сюда, отправляя сообщение об ошибке.

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