【问题标题】:How do I build Boost libraries on Code::Blocks (Windows)?如何在 Code::Blocks (Windows) 上构建 Boost 库?
【发布时间】:2012-11-09 02:05:47
【问题描述】:

呃,我累了。我对这件事的所有搜索都是徒劳的。无论我找到多少解决方案,我都找不到构建 Boost 库的方法。

所以,我可以简单地将 'boost' 根目录放入 Code Block 的 'include' 并跳过构建大多数库。那么,我该如何单独构建非仅标头库?

请注意,对于 .bat、cmd 以及所有这些东西,我是一个完全的外行。即使我尝试的任何我已经找到的假定解决方案实际上都可以工作,但我无法对实际指示的任何内容做出正面或反面。

伙计,我只想能够使用 boost::thread 的。 :我

【问题讨论】:

  • 您知道如何重新分配 Code Blocks 使用的编译器吗?下载this MinGW distribution,它带有预建的boost。关于“请注意,我对.bat、cmd、所有这些东西都是一个完全的外行”,请解决这个问题。学习使用你的命令行 shell,有大量关于这个主题的信息。
  • @BenjaminLindley 好吧,这里还有更多问题。我已按照网站中的步骤进行操作,但即使在此之后 Code::Blocks 也无法识别这个新的 MinGW。
  • 你试过关注Boost Getting Started Guide吗?

标签: c++ boost


【解决方案1】:

这是指南:BoostWindowsQuickRef,但前半部分可能有点混乱和过时。

  • 将 boost 解压到您选择的单独目录中(即C:\boost_1_52_0不要将其放入 code::blocks include dir 中)
  • 确保您可以从 Windows 命令行运行 gcc:

    C:\> gcc --version
    gcc (GCC) 4.6.2
    

    如果此步骤失败,您必须将<mingw installation dir>\bin 添加到您的路径环境变量中:

    c:\> PATH=%PATH%;C:\PathToMinGW\bin
    
  • 使用 gcc 作为参数运行 bootstrap 以使用 gcc 构建 boost.build 引擎:

    C:\boost_1_52_0> bootstrap.bat gcc
    
  • 运行 bjam 并指定工具集,在本例中为 gcc,以构建库:

    C:\boost_1_52_0> b2.exe toolset=gcc
    
  • 按照指南 Add Boost to an existing project in Code::Blocks 了解如何设置 code::blocks 以进行提升。

【讨论】:

  • toolset 是 Boost.Build 功能,而不是 b2 选项。因此,它应该-- 为前缀。否则 +1。
  • @AnonymousCoward 当我输入'bootstrap.bat gcc'时它说gcc不是命令
  • @Mutoh 在命令行输入gcc --version 是否会出现同样的错误?如果是这种情况,您必须将 mingw 的 bin 目录的路径添加到您的 PATH 环境变量中,如步骤 2 中所述。尝试查找 MinGW 文件夹或搜索 gcc.exe 如果您无法找到它。如果我没记错的话,默认文件夹是 C:\MinGW 这将使 C:\MinGW\bin 你必须添加到 PATH 环境变量中。
【解决方案2】:

“那么,我如何单独构建非仅包含标头的库?”

例如,如果您使用 MinGW 作为编译器选择,则打开命令提示符,导航到您下载/提取的 boost 根目录,然后按以下方式运行 bootstrap.bat 命令:

bootstrap.bat mingw

b2.exe

运行 bootstrap 命令将生成与 MinGW 相关的库文件(默认为 stage/lib 子目录),您需要在 Code::Blocks 中链接到这些文件,其中将包括 Boost.Threads 所需的文件:

然后在 CodeBlocks 中你需要

  1. 在搜索中设置Boost根目录的位置
  2. 选择链接器选项卡并设置库文件的位置
  3. 选择链接器设置选项卡添加必要的库名称,例如

有关更多屏幕截图和说明,请参阅此链接:

http://www.technical-recipes.com/2014/configuring-codeblocks-to-use-the-boost-libraries/

【讨论】:

  • 我已经很久没有问这个问题了,我已经对编译器和 Code::Blocks 有了更多的了解,但这正是当时像我这样的菜鸟会做的事情有需要。截图就是办法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多