11

我一直在尝试阅读 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

4

2 回答 2

10

我自己在这里找到了答案:
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 个问题。

于 2013-06-20T19:48:15.663 回答
4

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

于 2013-06-20T06:50:00.040 回答