2012-05-06 7 views
1

Привет Я пытаюсь использовать файловую систему boost и сталкиваюсь с трудностями при компиляции. Ниже приведено сообщение с консоли. Я использую boost 4.9 в OpenSuse 11.4 в eclipse. Я понятия не имею, что попробовать, чтобы эта работа работала, поэтому любая помощь будет широко оценена. Спасибо.Усиление проблем с файловой системой

Invoking: GCC C++ Linker 
g++ -L/usr/include/CGAL -L/usr/include/boost/iostreams -L/usr/include/gnuplot-iostream -L/usr/include/boost -L/usr/include -o"Aircraft_Engine_Noise" ./src/Aircraft_Engine_Noise.o ./src/Environment_Functions.o ./src/Global.o ./src/Plotting.o ./src/Simulation.o ./src/filehandle.o ./src/gnuplot_i.o ./src/gridsquare.o ./src/nasagridsquare.o ./src/terrain.o ./src/user_input.o ./src/utils.o -lboost_iostreams -lboost_system -lboost_filesystem 
./src/Plotting.o: In function `boost::filesystem3::temp_directory_path()': 
/usr/include/boost/filesystem/v3/operations.hpp:537: undefined reference to `boost::filesystem3::detail::temp_directory_path(boost::system::error_code*)' 
collect2: ld returned 1 exit status 
+0

Как вы установили boost? Или вы получили его из src и скомпилировали его самостоятельно? – RedX

ответ

2

В вашем вызове компилятора есть ошибки. Вы используете -L для каталогов include, тогда как вы должны использовать -I.

Возможно, вы не можете подключиться к библиотеке libboost_filesystem. Возможно, проблемы с вашим ошибочным вызовом g++ путают пути поиска библиотеки.

Возможно, вам потребуется добавить каталог, в котором находится библиотека. На моей установке, это в /usr/local, так

-L/usr/local 

добавляет его в пути поиска библиотек.

+0

Я думал, что сделал это. Я добавил его в библиотеки. И консольная строка, похоже, показывает, что: g ++ -L/usr/include/CGAL -L/usr/include/boost/iostreams -L/usr/include/gnuplot-iostream -L/usr/include/boost -L/usr/include -o "Aircraft_Engine_Noise" ./src/Aircraft_Engine_Noise.o ./src/Environment_Functions.o ./src/Global.o ./src/Plotting.o ./src/Simulation.o ./src/filehandle.o. /src/gnuplot_i.o ./src/gridsquare.o ./src/nasagridsquare.o ./src/terrain.o ./src/user_input.o ./src/utils.o -lboost_iostreams -lboost_system -lboost_filesystem – wookie1

+0

Эта библиотека *. * появляется в вызове компоновщика OP. –

+0

@ wookie1 извините, я не видел полного вызова. Кажется, в нем есть некоторые ошибки, но они могут быть не связаны с вашей проблемой. Где именно ускорители libs? – juanchopanza

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