boost文件系统出错

时间:2013-03-03 19:43:10

标签: boost filesystems

我尝试在Mac上使用boost文件系统。我只添加了以下标题,并在我尝试编译时遇到错误

# include <boost/filesystem.hpp>

错误是

Undefined symbols for architecture x86_64:
"boost::system::generic_category()", referenced from:
__static_initialization_and_destruction_0(int, int) in cclyDZox.o
"boost::system::system_category()", referenced from:
__static_initialization_and_destruction_0(int, int) in cclyDZox.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

感谢任何帮助

2 个答案:

答案 0 :(得分:3)

您需要添加boost_system库:

-lboost_system

到你的构建命令。请注意,您还需要提供-lboost_system库。

如果您的项目此后构建,但呻吟与

dyld: Library not loaded: libboost_filesystem.dylib

你只需要设置环境变量

DYLD_LIBRARY_PATH

包含您的

$BOOST_HOME/lib

提到的目录here

答案 1 :(得分:1)

我认为你应该这样做

g++ -I~/Documents/boost_1_53_0/include -L~/Documents/boost_1_53_0/stage/lib -std=c++11 test1ver1.cpp -lboost_filesystem -lboost_system

  • -I标记指向Boost标头的位置
  • -L标志指向Boost库的位置
  • -lboost_filesystem-lboost_system标志启用了二进制文件与Boost Filesystem和System共享库的链接。 (那些应该总是在对象或源文件之后)

例如:

#include <boost/filesystem.hpp>

int main() {
   boost::filesystem::path path_household_csv("./test");
}