如何在 Linux 中正确链接提升库
How to link boost libraries properly in Linux
我一直在尝试浏览 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/
。
相关文章:
- 如何在 Linux 中构建共享库时使未定义引用的链接器失败
- 在Linux(而不是OSX)中链接时发生库冲突
- 动态链接-Linux与Windows
- 如何在 Oracle Linux 上的 Eclipse 中编译和链接 boost 库
- 如何在Linux中使用GLFW函数正确链接C++对象?
- 使用 MINGW 和 CPLEX 库链接从 Linux 编译 Windows 可执行文件
- 将错误GoogleMock与我在linux下的C++项目链接
- linux/g++ 链接的多重定义
- 在 Linux 中编译/链接多个 C++ 库
- Ogre 3D共享库与CMAKE链接时,在Linux上执行二进制时找不到
- 您如何将所有链接依赖项都包装到一个Linux静态库中
- Cmake Mac OSX库链接问题:在Linux上进行编译,但在Mac上进行了编译
- 在 Linux 上的 Visual Studio 中链接两个项目
- 通过 CMake 2.8 静态链接 Linux C++应用程序
- 链接 Linux 上的 C++ 库
- 如何正确编译/链接Linux Makefile中的单元测试
- 使用链接linux编译GLFW应用程序问题
- 交叉编译库链接(linux)(C++/C)
- 链接Linux上嵌入Lua的静态lib时出错
- 链接Linux中的动态共享库-对函数的未定义引用