Linux C++ 将 Boost 编译到我的程序中
Posted
技术标签:
【中文标题】Linux C++ 将 Boost 编译到我的程序中【英文标题】:Linux C++ Compile Boost into my program 【发布时间】:2012-09-14 16:27:10 【问题描述】:我环顾了 google 和 ***,但似乎无法提出正确的问题来获得有用的答案。
我有一个在 Ubuntu 10.04 上编译的应用程序和 Boost::serialization 库中的链接。当我尝试在另一台机器上运行我的代码时,它不会运行说它找不到 Boost 库...
如何更改我的 gcc/g++ 编译参数以告诉编译器在我的可执行文件中包含 Boost 库?也就是说,如何编译才能获得完全可传输的程序?
如果我这样做,是否需要更改我的 C++ 中的任何内容?
【问题讨论】:
你试过g++ -static
吗?
没有。认为它看起来像那样。但这不会使我所有的库都是静态的吗?我可以只列出我想要编译的那些而排除其他的吗?
使用 CMake 这样的构建系统会更容易。
【参考方案1】:
所以我的同事找到了这个页面:http://ubuntuforums.org/showthread.php?t=491455
由此,他发现我们必须使用这些标志:-Wl,-Bstatic -lboost_serialization -Wl,-Bdynamic
【讨论】:
【参考方案2】:您确定您已使用静态链接来编译您的应用程序吗?
【讨论】:
没有。否则它将是可运输的。以上是关于Linux C++ 将 Boost 编译到我的程序中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 pkg-config 中使用 C++ Boost 库?
构建引用 Boost 的 Python 包时的 LNK1120