我使用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);
答案 0 :(得分:0)
我认为您不是对链接器说要链接到boost_regex。
如果使用的是GCC,请添加链接器标记-lboost_regex
。其他编译器也需要类似的标志。