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
4

1 回答 1

2

您的编译器调用中有一些错误。您正在使用-L包含目录,而您应该使用-I.

看起来您可能没有链接到libboost_filesystem库。这可能是您错误调用的问题g++弄乱了库搜索路径。

您可能还需要添加库所在的目录。在我的设置中,它位于/usr/local,所以

-L/usr/local

将其添加到库搜索路径。

于 2012-05-06T14:43:21.113 回答