我第一次使用Boost库,我选择了一个名叫Regex的漂亮女孩。
我已经在我的机器上安装了库(自动构建?),但是我收到了上述错误(找不到-lboost_regex
)。我正在使用Code :: Blocks with MinGW和C ++ 0X编译器标志。
我有
-lboost_regex
标志添加到链接器但没有运气。有人可以帮我搞定吗?
更新
现在正在运行。对于这个问题的新手,我在下面的答案中添加了一些进一步的注释。
(另外,改变了问题的标题,因为它比我刚开始时更广泛。)
答案 0 :(得分:6)
从我的第一次构建体验中,这里有一些可以帮助新手的链接和提示。我直接从zip文件构建了库。我在MinGW上构建,我使用CodeBlocks作为IDE。
$boostdir
)
b2.exe
和bjam.exe
bootstrap.bat
。$boostdir/tools/build/v2/engine
build.bat mingw
(将构建b2.exe
和bjam.exe
)
b2
和bjam
。导航回$boostdir
并准备开始构建库。
bin.v2
目录。bin.v2
。b2 toolset=gcc --build-type=complete
现在你们都建成了。是时候设置CodeBlock了。
$boostdir
地址stage\lib\
$boostdir
目录
C:\Program Files\Boost_1_52\stage\lib\libboost_regex-mgw44-1_52.dll
blah\blah\blah\stage\lib\
)-lboost_regex-mgw44-1_52
可能有助于或混淆的进一步文档:
Code :: Blocks网站有a version of this,直到我接近搜索结束时才找到。这很有帮助,但有一些奇怪的事情。 This post也很有用。
祝你好运!答案 1 :(得分:4)
我不确定自动构建的是什么意思。大多数Boost库只是头文件,但需要将一些文件(如正则表达式)编译为共享/静态库。编译步骤不是自动的,您需要调用Boost构建系统(bjam
)来执行此操作。当然,还有一些来源(例如BoostPro)为各种平台分发预构建的Boost二进制文件。
完成后,您需要将库所在的路径添加到链接器的搜索路径中。对于MinGW,此选项为-L"path/to/library"
。 Boost确实有指令允许自动链接所需的库,这似乎与MSVC很好地工作,但我从来没有让它与MinGW一起工作。因此,您还必须列出要明确链接的库。 Boost库默认包含文件名中的目标和版本信息,因此对于MinGW gcc 4.7和Boost 1.51
-lboost_regex-mgw47-mt-1_51