如何在Linux中正确链接boost库

时间:2013-06-20 05:58:19

标签: c++ boost linker

我一直在尝试浏览Boost教程,但我一直困在链接文件系统库。

我有Ubuntu 12.10。安装不是那么难

sudo apt-get install libboost-all-dev

这会将/ usr / local / include和编译源中的所有头文件放在/ usr / lib /
中 [--headers]
[--binaries]

我写了这个程序[--program]。当我试图编译它时

 g++ -g tut1.cpp -o tut1 -lboost_system -lboost_filesystem

得到了这个错误:[ - errors]。
http://www.boost.org/doc/libs/1_53_0/more/getting_started/unix-variants.html上搜索一下 我试过这个:

g++ -g -I /usr/local/include/boost/ tut1.cpp -o tut1 -L /usr/lib/libboost_filesystem.a -lboost_system -lboost_filesystem 

但没有运气。我有同样的错误。

由于我不能在帖子中放置超过2个链接,这里是所有链接
http://pastebin.com/DakVFn12

2 个答案:

答案 0 :(得分:6)

我在这里找到答案:
http://www.richelbilderbeek.nl/CppLinkErrorUndefinedReferenceToBoostFilesystemDetailGet_current_path_api.htm
看起来二进制文件不在/ usr / lib中,而是在/ usr / local / lib中。
因此编译的正确命令是:

g++ -g tut1.cpp -o tut1 -L/usr/local/lib/ -lboost_filesystem
@Yuushi,这是一个问题。

答案 1 :(得分:3)

-L命令应该是包含库的基本路径,而不是特定库的路径。请尝试使用-L /usr/lib/

相关问题