使用mingw和codeBlocks安装升压库
Installing Boost libraries with MinGW and CodeBlocks
我第一次与Boost库一起使用,我选择了一个名为Regex的漂亮女孩。
我已经在计算机上安装了库(自动构建?),但是我遇到了上述错误(找不到-lboost_regex
)。我正在使用MINGW和C 0x编译器标志的Code ::块。
我有
- 将"搜索目录"指向安装目录
- 将
-lboost_regex
标志添加到链接器
但没有运气。有人可以帮我做这个吗?
update
现在正在运行。我在下面的答案中添加了一些笔记,以解决这个问题的新移民。
(也更改了问题的标题,因为事实证明这是一个比我开始时更广泛的问题。)
以下是一些链接和技巧,可以帮助新手,从我的第一个构建体验中。我直接从zip文件构建了库。我在mingw上构建,并为IDE使用了CodeBlocks。
- 下载boost zip,在某个地方打开拉链(我称之为
$boostdir
)- 解压缩时非常大,> 300MB
- 将mingw bin添加到路径var
- 当Boost构建时,它将需要访问mingw oputables
- 构建
b2.exe
和bjam.exe
- Windows的文档Blithely假设可以使用MSVC编译器。
- 如果是,您显然可以像文档所说的那样使用
bootstrap.bat
。 - 如果不是(像我一样),则必须在步骤4和5中自己构建EXE文件。
- 在CMD中,导航到
$boostdir/tools/build/v2/engine
- 运行
build.bat mingw
(将构建b2.exe
和bjam.exe
)- 关于该的一些老化基本文档
- 现在,您根据您的系统规范有
b2
和bjam
自定义构建。导航返回到$boostdir
,并准备开始构建库。- Boost将在当前目录中创建一个新的
bin.v2
目录。 - 所有的lib都将进入
bin.v2
。 - 这是一个"中间"目录,出于某种原因
- 在此步骤中无事可做,只有一些额外信息:)
- Boost将在当前目录中创建一个新的
- 运行
b2 toolset=gcc --build-type=complete
- 这需要很长时间,在 1-2小时的附近。
- 您会知道它是否有效。如果您认为出了点问题,那就不起作用。
- 构建可以使用各种标志
现在你全都建了。是时候设置CodeBlock。
- 将编译器指向标题文件
- 右键单击您的项目 ->构建选项 ->搜索目录选项卡 ->编译器选项卡 ->添加
$boostdir
地址
- 右键单击您的项目 ->构建选项 ->搜索目录选项卡 ->编译器选项卡 ->添加
- BOOST已根据您当前的系统规范为您想要的库构建了DLL。查看
$boostdir
的stagelib
目录- 此DLL将在以后的链接器中使用,因此请勿关闭其资源管理器窗口
- 我在
C:Program FilesBoost_1_52stageliblibboost_regex-mgw44-1_52.dll
- 我认为文档有一种明智的方法,但我还没有尝试过
- 现在可以删除步骤6的"中间"目录,因为构建已完成
- 将您的链接指向该DLL的目录
- 右键单击您的项目 ->构建选项 ->搜索目录选项卡 ->链接选项卡 ->添加该目录地址(
blahblahblahstagelib
)
- 右键单击您的项目 ->构建选项 ->搜索目录选项卡 ->链接选项卡 ->添加该目录地址(
- 将DLL标志添加到您的链接器设置
- 我的是
-lboost_regex-mgw44-1_52
- 我的是
- 深呼吸,向您的上帝祈祷,并发动考验。
更多可能会有所帮助或混淆的文档:
代码:: 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
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- C++:如何在CLion IDE中安装Boost
- 安装opencv失败-粘贴CMakeError.log的内容
- 在cygwin中测试新的boost安装时出现cpp错误
- 有人安装"IITB Simplecpp in mac"吗?
- 我可以在 Arduino 的库文件夹之外安装库吗?
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- 安装 libc++ 时出现问题
- 为什么这种情况发生在CodeBlocks上?
- 安装MinGW后C++编译器不起作用?
- 介子复制/安装头文件到输出目录并保持文件夹结构
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- 检查是否安装了 windows10 C++
- 安装 psutil 和为 pypy 配置期间出错
- 使用mingw和codeBlocks安装升压库
- 在 Mac 上安装 Boost with CodeBlocks
- 如何使用CodeBlocks安装Boost库