我一直在尝试让 boost 库与 Code::Blocks 一起使用,但遇到了一些麻烦。
当我第一次尝试获取 boost 时,我所做的就是下载最新的 zip 文件并将其解压到 CodeBlocks 文件夹中。然后我将编译器设置设置为在 boost 文件夹中查找。这允许我编译,但不能链接。然后我阅读了BoostWindowsQuickReference。我从机器中删除了与 boost 相关的所有内容,然后重新开始。
我一步步按照说明进行操作,唯一不完全按照说明进行的事情是包含 oost 的 install-proper 文件夹位于 C: 中,而不是我的 CodeBlocks 文件夹中。所以我只是将它复制到 CodeBlocks 文件夹(以防万一出于某种原因它需要在那里),我认为这很奇怪,因为我已经从下载的 .zip 中得到了一个 boost_1_40_0 文件夹。
然后我尝试编译一个程序,结果出现了完全相同的错误。然后我意识到我忘记放入链接库(例如:boost_regex-mgw44-mt-1_40.lib)。现在我明白了
错误:ld.exe||找不到-lboost_regex-mgw44-mt-1_40.lib|
我有几个问题:
如果需要任何澄清,我很乐意这样做。谢谢。
编辑:现在我无法编译常规程序。所以我又重新开始了。
1,应该是-lboost_regex-mgw44-mt-1_40
2、阅读文档,大多数boost库不需要链接库
3,4,你应该自己编译它,或者尝试nuwen的MinGW(我已经安装了它并且工作正常)
BoostPro 具有可用于 Boost 库的 Windows 二进制文件。如果您仅下载 Boost 源代码,并且使用任何非标头库(例如 boost regex),则必须对其进行编译。 BoostPro 二进制文件将允许您链接到这些文件,而无需构建任何东西。
在 Windows 上,Boost“安装”到哪里并不重要。只需获取 .7z,使用 bjam.exe 进行编译并传递您需要的选项即可。它将创建一个名为“bin.v2”的文件夹并将生成的库放入其中。在 Code::Blocks 中,您所需要做的就是编辑项目选项并将搜索路径指向 boost_1_40_0 oost 并手动输入要链接的库(来自 bin.v2 的库)。那么它应该就可以工作了。
请勿使用预编译的 Boost 库。