在 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++进程

在 Objective-C 中使用外部 C++ 头文件

使用多个视图在 QML 中查看、编辑和更新数据(来自 C++),而数据保留在 C++ 中(订阅数据)

在 c++ 应用程序中使用 Simulink