c++ - boost 的正则表达式无法编译

标签 c++ regex gcc boost

我在 Ubuntu 上使用 boost 1.45.0,Code::Blocks 作为我的 IDE,但我无法编译 basic_regex.hpp。我很确定我正确设置了 boost,因为我可以使用 boost::format 编译程序而不会出现任何错误。但是我遇到了这个烦人的错误,我不知道如何摆脱它。

引发错误的代码:

boost::regex e("\"http:\\\\/\\\\/localhostr.com\\\\/files\\\\/.+?\"");

编译器输出(GCC):

obj/Debug/main.o
In function `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::assign(char const*, char const*, unsigned int)'

/home/neal/Documents/boost_1_45_0/boost/regex/v4/basic_regex.hpp|379|
undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'|

||=== Build finished: 1 errors, 0 warnings ===|

我在设置 boost 时是否遗漏了一个步骤,或者我应该降级到另一个版本的 boost?

最佳答案

这看起来像是链接器错误。 boost::regex 不是仅 header 库,因此您需要将 -lboost_regex 和正确的 -L/path/to/boost/lib 传递给链接器。

关于c++ - boost 的正则表达式无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523686/

相关文章:

c - 不适用于 gcc 的代码

c - 是否可以在同一行中对其进行数学运算时获取变量的地址

c++ - '.' 标记之前的预期主表达式

c++ - Qt : Unable to load TTF file

c++ - Qt - 这些代码行是什么意思

javascript - 正则表达式验证不适用于 Google Chrome Android 应用程序,但适用于 Chrome 浏览器 - PC

c++ - 在堆栈上创建一个指针

php - 最后一点后的正则表达式提取字符串

java - 如何使用正则表达式模式分割字符串

c++ - 在模板化成员函数的返回类型中使用 std::enable_if 时的编译器差异