如何在 Linux 中正确链接提升库

How to link boost libraries properly in Linux

本文关键字:链接 Linux      更新时间:2023-10-16

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

我有 Ubuntu 12.10。安装并不难

sudo apt-get install libboost-all-dev

这会将所有标头放在/usr/local/include 中,并将编译的源代码放在/usr/lib/
中[--标题]
[--二进制文件]

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

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

出现此错误:[--错误]。
在 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

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

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