在 C++ 中使用 boost:regex_error 时未定义符号?
Posted
技术标签:
【中文标题】在 C++ 中使用 boost:regex_error 时未定义符号?【英文标题】:Undefined symbol while using boost:regex_error in C++? 【发布时间】:2012-08-16 10:14:08 【问题描述】:我正在使用 boost 库进行正则表达式,我使用 boost::regex() 函数来编译正则表达式。我必须捕获此函数调用引发的异常。所以我在 catch() 中使用了boost:regex_error
。
但是使用这个函数会报如下错误:
undefined symbol: _ZTIN5boost11regex_errorE
出现上述错误的原因是什么?
【问题讨论】:
您需要链接到 boost 正则表达式库(您必须先构建该库)。 【参考方案1】:您必须与boost_regex
链接。在 GCC 上,将 -lboost_regex
添加到链接器调用中。其他编译器将具有等效选项。
【讨论】:
【参考方案2】:$ c++filt _ZTIN5boost11regex_errorE
typeinfo for boost::regex_error
所以缺少类型信息。我认为您应该在启用 RTTI(运行时类型信息)的情况下编译您的项目。
或
g++ undefined reference to typeinfo
【讨论】:
以上是关于在 C++ 中使用 boost:regex_error 时未定义符号?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual C++ 2010 中使用 C++ 库 [重复]
我们啥时候需要在纯 C++ 程序中使用结构?纯 C++ 程序是不是需要结构? [复制]
当python使用“Python.h”调用该c++进程时,如何在python中停止一个c++进程