Boost 和 Code::Blocks 出现问题

问题描述 投票:0回答:3

我一直在尝试让 boost 库与 Code::Blocks 一起使用,但遇到了一些麻烦。

当我第一次尝试获取 boost 时,我所做的就是下载最新的 zip 文件并将其解压到 CodeBlocks 文件夹中。然后我将编译器设置设置为在 boost 文件夹中查找。这允许我编译,但不能链接。然后我阅读了BoostWindowsQuickReference。我从机器中删除了与 boost 相关的所有内容,然后重新开始。

我一步步按照说明进行操作,唯一不完全按照说明进行的事情是包含 oost 的 install-proper 文件夹位于 C: 中,而不是我的 CodeBlocks 文件夹中。所以我只是将它复制到 CodeBlocks 文件夹(以防万一出于某种原因它需要在那里),我认为这很奇怪,因为我已经从下载的 .zip 中得到了一个 boost_1_40_0 文件夹。

然后我尝试编译一个程序,结果出现了完全相同的错误。然后我意识到我忘记放入链接库(例如:boost_regex-mgw44-mt-1_40.lib)。现在我明白了

错误:ld.exe||找不到-lboost_regex-mgw44-mt-1_40.lib|

我有几个问题:

  1. 显然,我做错了什么?
  2. 每次我想使用升压工具时,我都需要放入一个链接库吗(所有内容都分为不同的文件,不只是一个大项目。)
  3. 是否有必要使用 boost-jam 构建库,或者我可以提取它并使用它? (可能是一个愚蠢的问题,但是当我得到完全相同的错误时,就种下了一颗小小的怀疑的种子。)
  4. 我应该尝试 nuwen 的 MinGW Distro 吗? (这会让事情变得更容易吗?)

如果需要任何澄清,我很乐意这样做。谢谢。

编辑:现在我无法编译常规程序。所以我又重新开始了。

c++ boost linker ide
3个回答
0
投票

1,应该是-lboost_regex-mgw44-mt-1_40

2、阅读文档,大多数boost库不需要链接库

3,4,你应该自己编译它,或者尝试nuwen的MinGW(我已经安装了它并且工作正常)


0
投票

BoostPro 具有可用于 Boost 库的 Windows 二进制文件。如果您仅下载 Boost 源代码,并且使用任何非标头库(例如 boost regex),则必须对其进行编译。 BoostPro 二进制文件将允许您链接到这些文件,而无需构建任何东西。


0
投票

在 Windows 上,Boost“安装”到哪里并不重要。只需获取 .7z,使用 bjam.exe 进行编译并传递您需要的选项即可。它将创建一个名为“bin.v2”的文件夹并将生成的库放入其中。在 Code::Blocks 中,您所需要做的就是编辑项目选项并将搜索路径指向 boost_1_40_0 oost 并手动输入要链接的库(来自 bin.v2 的库)。那么它应该就可以工作了。

请勿使用预编译的 Boost 库。

© www.soinside.com 2019 - 2024. All rights reserved.