2013-03-03 103 views
0

我尝试在我的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 

任何帮助表示赞赏

+0

链接时,你没有忘记标志-lboost_system和-lboost_filesystem吗? – toch 2013-03-03 19:48:30

回答

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 

The

  • -I标志点到Boost的头是
  • -L标志点,在升压库是
  • -lboost_filesystem-lboost_system标志启用的二进制文件和提高文件系统和系统共享库的链接。 (这些应该对象或源文件后总是)

例如:

#include <boost/filesystem.hpp> 

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

谢谢你的回复。 – user2085646 2013-03-04 20:08:16

+0

谢谢你的回复。我照你说的做了,而且我还是得到了同样的错误ld:library找不到-lboost_system collect2:error:ld返回1退出状态 – user2085646 2013-03-04 20:09:08

+0

我错过了什么吗?我有货 - 我很感谢你的帮助 – user2085646 2013-03-04 20:11:23

3

您需要添加boost_system库:

-lboost_system 

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

如果你的项目其后构建但像

dyld: Library not loaded: libboost_filesystem.dylib 

呻吟,你只需要设置环境变量

DYLD_LIBRARY_PATH 

,包括您的

$BOOST_HOME/lib 

目录中提到here