【发布时间】:2019-02-24 12:50:35
【问题描述】:
我使用 wregex 作为以下 C++ 代码。但它不起作用,你能帮帮我吗?欢迎任何建议。
#include <boost/regex.hpp>
namespace abc
{
int ClassName::fun1()
{
wstring wp1 = _String2Wstring(p1); // This a function defined by myself.
boost::wregex wreg(wp1,boost::regex::perl|boost::regbase::icase);
......
}
}
我可以在centos 7中成功编译一个.so文件。但是当我启动我的应用程序时。我在网站http://demangler.com/的日志文件中收到以下消息
undefined symbol: boost::basic_regex<wchar_t,
boost::regex_traits<wchar_t, boost::cpp_regex_traits<wchar_t> >
>::do_assign(wchar_t const*, wchar_t const*, unsigned int)
如果删除以下代码,我可以启动我的应用程序。所以我认为错误来自这段代码。但我很困惑找不到答案。谢谢。
boost::wregex wreg(wp1,boost::regex::perl|boost::regbase::icase);
【问题讨论】:
-
您看到的错误是链接器错误。发生这种情况是因为您没有在构建中包含 boost 正则表达式库。
-
不是
_String2Wstring是全局命名空间中的保留名称 - stackoverflow.com/questions/228783/…