使用mingw和codeBlocks安装升压库

Installing Boost libraries with MinGW and CodeBlocks

本文关键字:安装 codeBlocks mingw 使用      更新时间:2023-10-16

我第一次与Boost库一起使用,我选择了一个名为Regex的漂亮女孩。

我已经在计算机上安装了库(自动构建?),但是我遇到了上述错误(找不到-lboost_regex)。我正在使用MINGW和C 0x编译器标志的Code ::块。

我有

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

但没有运气。有人可以帮我做这个吗?


update

现在正在运行。我在下面的答案中添加了一些笔记,以解决这个问题的新移民。

(也更改了问题的标题,因为事实证明这是一个比我开始时更广泛的问题。)

以下是一些链接和技巧,可以帮助新手,从我的第一个构建体验中。我直接从zip文件构建了库。我在mingw上构建,并为IDE使用了CodeBlocks。

  1. 下载boost zip,在某个地方打开拉链(我称之为 $boostdir
    • 解压缩时非常大,> 300MB
  2. 将mingw bin添加到路径var
    • 当Boost构建时,它将需要访问mingw oputables
  3. 构建b2.exebjam.exe
    • Windows的文档Blithely假设可以使用MSVC编译器。
    • 如果是,您显然可以像文档所说的那样使用bootstrap.bat
    • 如果不是(像我一样),则必须在步骤4和5中自己构建EXE文件。
  4. 在CMD中,导航到$boostdir/tools/build/v2/engine
  5. 运行build.bat mingw(将构建b2.exebjam.exe
    • 关于该的一些老化基本文档
  6. 现在,您根据您的系统规范有b2bjam自定义构建。导航返回到$boostdir,并准备开始构建库。
    • Boost将在当前目录中创建一个新的bin.v2目录。
    • 所有的lib都将进入bin.v2
    • 这是一个"中间"目录,出于某种原因
    • 在此步骤中无事可做,只有一些额外信息:)
  7. 运行b2 toolset=gcc --build-type=complete
    • 这需要很长时间,在 1-2小时的附近
    • 您会知道它是否有效。如果您认为出了点问题,那就不起作用。
    • 构建可以使用各种标志

现在你全都建了。是时候设置CodeBlock。

  1. 将编译器指向标题文件
    • 右键单击您的项目 ->构建选项 ->搜索目录选项卡 ->编译器选项卡 ->添加$boostdir地址
  2. BOOST已根据您当前的系统规范为您想要的库构建了DLL。查看$boostdirstagelib目录
    • 此DLL将在以后的链接器中使用,因此请勿关闭其资源管理器窗口
    • 我在C:Program FilesBoost_1_52stageliblibboost_regex-mgw44-1_52.dll
    • 我认为文档有一种明智的方法,但我还没有尝试过
    • 现在可以删除步骤6的"中间"目录,因为构建已完成
  3. 将您的链接指向该DLL的目录
    • 右键单击您的项目 ->构建选项 ->搜索目录选项卡 ->链接选项卡 ->添加该目录地址(blahblahblahstagelib
  4. 将DLL标志添加到您的链接器设置
    • 我的是-lboost_regex-mgw44-1_52
  5. 深呼吸,向您的上帝祈祷,并发动考验。

更多可能会有所帮助或混淆的文档:

代码:: blocks网站有一个版本,直到我接近搜索结束时才发现它。这很有帮助,但有一些奇怪的事情。这篇文章也很有帮助。

祝你好运!

我不确定您的意思是自动构建。大多数Boost库仅是标题,但是诸如Regex之类的库需要编译到共享/静态库中。编译步骤不是自动的,您需要调用Boost Build System(bjam)来执行此操作。当然,有一些来源(例如,BOOSTPRO)为各种平台分发了预构建的增压二进制文件。

完成后,您需要在链接器的搜索路径中添加存在库的路径。对于mingw,此选项是-L"path/to/library"。Boost确实具有允许自动链接所需库的指示,这似乎与MSVC非常有效,但是我从来没有与Mingw一起使用。因此,您还必须列出要明确链接的库。Boost库默认情况下在文件名中包含目标和版本信息,因此典型的链接器命令行选项看起来像Mingw GCC 4.7的-lboost_regex-mgw47-mt-1_51,并提升1.51