【问题标题】:Trouble with boost and Code::Blocksboost 和 Code::Blocks 的问题
【发布时间】:2010-11-25 11:55:18
【问题描述】:

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

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

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

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

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

我有几个问题:

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

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

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

【问题讨论】:

    标签: c++ ide compiler-construction boost linker


    【解决方案1】:

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

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

    3,4,你应该自己编译,或者试试nuwen的MinGW(我已经安装了,效果很好)

    【讨论】:

    • nuwen's 没有 boostjam :P
    【解决方案2】:

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

    【讨论】:

    • 如果您正在寻找适用于 1.40 的 Windows (Visual Studio) 库,您可以通过以下网址获取它们:boost.teeks99.com,因为 BoostPro 尚不提供这些库。
    【解决方案3】:

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

    不要使用预编译的 Boost 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 2022-12-04
      • 2020-05-17
      • 1970-01-01
      相关资源
      最近更新 更多