我在 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/