2012-05-06 44 views
1

嗨我想使用boost文件系統,並在編譯時遇到麻煩。以下是來自控制檯的消息。我在eclipse中使用OpenSuse 11.4上的boost 4.9。我不知道下一步該做什麼才能使這個工作,所以任何幫助將大規模讚賞。 謝謝。加劇文件系統困難

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作爲包含目錄,而您應該使用-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

該庫* does *出現在OP的鏈接器調用中。 –

+0

@ wookie1對不起,我還沒有看到完整的調用。它似乎有一些錯誤,但它們可能與你的問題無關。 boost庫在哪裏? – juanchopanza