使用MinGW和CodeBlocks安装Boost库

Ben*_*Ben 2 c++ regex boost mingw

我正在第一时间使用Boost库,我选择了一个名叫Regex的漂亮女孩.

我已经在我的机器上安装了库(自动构建?),但是我收到了上面的错误(找不到-lboost_regex).我正在使用Code :: Blocks with MinGW和C++ 0X编译器标志.

我有

  • 将"搜索目录"指向安装目录
  • -lboost_regex向链接器添加了标志

但没有运气.有人可以帮我搞定吗?


更新

现在好起来了.对于这个问题的新手,我在下面的答案中添加了一些进一步的注释.

(另外,改变了问题的标题,因为它比我刚开始时更广泛.)

Ben*_*Ben 6

从我的第一次构建体验开始,这里有一些可以帮助新手的链接和提示.我直接从zip文件构建了库.我在MinGW上构建,我使用CodeBlocks作为IDE.

  1. 下载Boost zip,在某处解压缩(我会称那个地方$boostdir)
    • 拉链时相当大,> 300MB
  2. 将MinGW bin添加到PATH var
    • 当Boost构建时,它将需要访问MinGW可执行文件
  3. 建立b2.exebjam.exe
    • Windows 的文档巧妙地假设MSVC编译器可用.
    • 如果是,你可以显然使用bootstrap.bat文档说的那样.
    • 如果不是(像我的那样),你必须自己构建exe文件,在第4步和第5步中.
  4. 在CMD中,导航到 $boostdir/tools/build/v2/engine
  5. 运行build.bat mingw(将构建b2.exebjam.exe)
  6. 现在你已经得到b2,并bjam根据系统的规格定制.导航回来$boostdir并准备开始构建库.
    • Boost将bin.v2在当前目录中创建一个新目录.
    • 所有的lib都会进去bin.v2.
    • 出于某种原因,这是一个"中间"目录
    • 这一步没什么可做的,只是一些额外的信息:)
  7. b2 toolset=gcc --build-type=complete
    • 这需要很长时间,在1-2小时左右.
    • 你会知道它是否有效.如果你认为有些不对劲,那就不行了.
    • 构建可以使用各种标志

现在你们都建成了.是时候设置CodeBlock了.

  1. 将编译器指向头文件
    • 右键单击您的项目 - >构建选项 - >搜索目录选项卡 - >编译器选项卡 - >添加$boostdir地址
  2. Boost根据您当前的系统规范为您想要的库构建了一个DLL.查看stage\lib\目录$boostdir
    • 此DLL稍后将在链接器中使用,因此请勿关闭其资源管理器窗口
    • 我在 C:\Program Files\Boost_1_52\stage\lib\libboost_regex-mgw44-1_52.dll
    • 我认为文档有一个聪明的方法来做到这一点,但我还没有尝试过
    • 现在,构建完成后,可以删除步骤#6中的"中间"目录
  3. 将链接器指向该DLL的目录
    • 右键单击您的项目 - >构建选项 - >搜索目录选项卡 - >链接器选项卡 - >添加该目录地址(blah\blah\blah\stage\lib\)
  4. 将该DLL标志添加到链接器设置
    • 我的是 -lboost_regex-mgw44-1_52
  5. 深呼吸,向你的上帝祈祷,并开始测试.

进一步的文档可能会有所帮助或混淆:

Code :: Blocks网站有一个版本,直到我的搜索结束时才找到.这很有帮助,但有一些奇怪的事情. 这篇文章也很有帮助.

祝好运!