不构建简单的 Boost 代码

Posted

技术标签:

【中文标题】不构建简单的 Boost 代码【英文标题】:Simple Boost code doesn't build 【发布时间】:2015-01-06 20:18:01 【问题描述】:

当我包含 asio 标头时:

#include <boost/asio.hpp>

我得到了错误:

undefined reference to boost::system::generic_category()

所以我读到我必须链接到boost_system,我这样做了。但现在它给出了错误::

cannot find -lboost_system

为什么找不到boost_system。我在 Windows 上使用代码块。

【问题讨论】:

它在哪里寻找 boost_system? @zmbq 我将库路径设置为“C:\Program Files\boost_1_55_0\libs” C++ Boost: undefined reference to boost::system::generic_category()的可能重复 @l'L'l 那里的答案说链接到-lboost_system。但这就是首先给我这个错误的原因。 【参考方案1】:

boost 是一个单独的库,需要安装在您的构建机器上。 请按照以下说明进行安装: http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/installation.html http://www.boost.org/ 安装后,如果应用程序未安装在标准位置,则需要能够找到它。

您需要为构建过程提供头文件和 lib 目录。

g++ source source.cpp -I/path to boost headers -L path to boost libs -lboost_system

查看你的 libs 目录以确保你有 boost_system。根据构建,您可能只有 boost_system-mt

【讨论】:

很奇怪。当我查看“C:\Program Files\boost_1_55_0\libs”内部时,我找不到任何名为 boost_system 的东西。这只是一堆其他文件夹。 我已经更新了我的答案。看来您只是下载并没有引导和安装。 安装 Boost.Build 时 PREFIX 应该是什么?可以是我想要的任何东西,还是需要在某个特定的地方? 它真的可以在任何地方。但请尽量将其放在便于开发的位置。 我是否必须创建一个文件夹来放入它,或者它会自己创建一个文件夹(它不会用文件淹没目录)?

以上是关于不构建简单的 Boost 代码的主要内容,如果未能解决你的问题,请参考以下文章

代码块、MinGW、Boost 和静态链接问题

C++ Boost ASIO 简单的周期性定时器?

Boost::thread 在简单循环期间崩溃

g ++构建具有boost依赖项的c ++程序

构建 exe 时如何禁用 exp/lib 生成?

使用 boost 过程编译一个简单的应用程序会产生错误