我第一次尝试使用 Boost 库,我选择了一个名叫 Regex 的漂亮女孩。
我已经在我的机器上安装了库(自动构建?),但我收到上述错误(找不到 -lboost_regex
)。我将 Code::Blocks 与 MinGW 和 C++0X 编译器标志一起使用。
我有
- 将“搜索目录”指向安装目录
- 将
-lboost_regex
标记添加到链接器
但运气不好。有人可以帮我解决这个问题吗?
更新
现在一切正常。对于这个问题的新手,我在下面的答案中添加了一些进一步的注释。
(另外,更改了问题的标题,因为事实证明它是一个比我刚开始时更广泛的问题。)
最佳答案
根据我的第一次构建经验,这里有一些可以帮助新手的链接和提示。我直接从 zip 文件构建库。我在 MinGW 上构建,并在 IDE 中使用了 CodeBlocks。
- 下载 Boost zip,在某个地方解压(我将那个地方称为
$boostdir
)- 解压后很大,> 300MB
- 将 MinGW bin 添加到 PATH var
- 构建 Boost 时,它需要访问 MinGW 可执行文件
- 构建
b2.exe
和bjam.exe
- documentation适用于 Windows assumes MSVC compiler可用。
- 如果是,您显然可以像文档中所说的那样使用
bootstrap.bat
。 - 如果不是(像我的),您必须在第 4 步和第 5 步中自己构建 exe 文件。
- 在 CMD 中,导航到
$boostdir/tools/build/v2/engine
- 运行
build.bat mingw
(将构建b2.exe
和bjam.exe
) - 现在您已经根据您的系统规范定制了
b2
和bjam
。导航回$boostdir
并准备开始构建库。- Boost 将在当前目录中创建一个新的
bin.v2
目录。 - 所有库都将放入
bin.v2
。 - 出于某种原因,这是一个“中间”目录
- 此步骤无需执行任何操作,只需提供一些额外信息 :)
- Boost 将在当前目录中创建一个新的
- 运行
b2 toolset=gcc --build-type=complete
- 这需要很长时间,大约 1 - 2 小时。
- 你会知道它是否有效。如果您认为有问题,那就是它没有用。
- 构建可以使用各种flags
现在你已经全部构建好了。是时候设置代码块了。
- 将你的编译器指向头文件
- 右键单击您的项目 -> Build Options -> Search Directories 选项卡 -> Compiler 选项卡 -> 添加
$boostdir
地址
- 右键单击您的项目 -> Build Options -> Search Directories 选项卡 -> Compiler 选项卡 -> 添加
- Boost 已经根据您当前的系统规范为您想要的库构建了一个 DLL。查看
$boostdir
的stage\lib\
目录- 此 DLL 稍后将在链接器中使用,因此请先不要关闭其资源管理器窗口
- 我的在
C:\Program Files\Boost_1_52\stage\lib\libboost_regex-mgw44-1_52.dll
- 我认为文档有一个聪明的方法来做到这一点,但我还没有尝试过
- 现在构建完成后,可以删除步骤 #6 中的“中间”目录
- 将您的链接器指向该 DLL 的目录
- 右键单击您的项目 -> 构建选项 -> 搜索目录选项卡 -> 链接器选项卡 -> 添加
该目录地址 (
blah\blah\blah\stage\lib\
)
- 右键单击您的项目 -> 构建选项 -> 搜索目录选项卡 -> 链接器选项卡 -> 添加
该目录地址 (
- 将该 DLL 标志添加到您的链接器设置中
- 我的是
-lboost_regex-mgw44-1_52
- 我的是
- 深呼吸,向你的神祈祷,然后启动测试。
可能有帮助或混淆的更多文档:
Code::Blocks 网站有 a version of this直到我接近搜索结束时我才找到。它很有帮助,但有一些奇怪的事情。 This post也很有帮助。
祝你好运!
关于c++ - 使用 MinGW 和 CodeBlocks 安装 Boost 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320264/