在Arch Linux中使用c ++ Boost regex库

mar*_*ega 1 c++ regex boost g++

我在构建一个简单的c ++程序时遇到了麻烦,该程序可以从boost库中测试出正则表达式.我遇到的问题是在链接阶段发生,我不知道自己修复错误.

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

#include <boost/regex.hpp>
Run Code Online (Sandbox Code Playgroud)

我不知道应该用什么命令来使用g ++来构建程序.我尝试使用以下命令行(及其变体)来构建程序.

g++ -I/usr/include/regex -L/usr/lib -llibboost_regex main.cpp -o regex_test
Run Code Online (Sandbox Code Playgroud)

其他可能相关的信息:

Operating system: Arch linux
g++ version: 4.6.2 20120120 (prerelease)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

ken*_*ytm 6

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

  1. 标题<boost/regex.hpp>应该存在于/usr/include/boost/regex.hpp.您不需要使用任何-I标志,因为/usr/include默认情况下应该包含它们.
  2. 您不应该需要该-L标志,因为/usr/lib链接时默认情况下也应该包含该标志.
  3. 使用-l标志链接库时libfoo.so,应删除前导"lib"部分.

因此命令行应该是:

g++ main.cpp -o regex_test -lboost_regex
Run Code Online (Sandbox Code Playgroud)