我在构建一个简单的c++程序(从boost库中测试正则表达式)时遇到了麻烦。我遇到的问题是在链接阶段发生的,我所知还不足以自行解决错误。

在使用正则表达式的.cpp程序中,我使用了以下包含行。

#include <boost/regex.hpp>

我不太了解要使用g++来构建程序的命令。我尝试使用以下命令行(及其变体)来构建程序。
g++ -I/usr/include/regex -L/usr/lib -llibboost_regex main.cpp -o regex_test

其他可能相关的信息:
Operating system: Arch linux
g++ version: 4.6.2 20120120 (prerelease)

任何帮助,将不胜感激。

最佳答案

假设您已使用boostboost-libs软件包安装了Boost,

  • header <boost/regex.hpp>应该存在于/usr/include/boost/regex.hpp中。您不需要使用任何-I标志,因为默认情况下应包括/usr/include
  • 您也不需要-L标志,因为链接时默认情况下还应包括/usr/lib
  • 使用-l标志与库libfoo.so链接时,应删除开头的“lib”部分。

  • 因此,命令行应为:
    g++ main.cpp -o regex_test -lboost_regex
    

    关于c++ - 在Arch Linux中使用c++ Boost regex库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9552258/

    10-17 02:17