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

在 Linux 中将 boost-python 与 C++ 一起使用

BOOST库c ++的问题

C++ 将外部 .exe 嵌入到我编译的 .exe 中

使用带有 Clang 的 Boost 编译 c++ 项目时出现问题