【发布时间】:2014-08-01 08:46:48
【问题描述】:
我开发了一个 C++ 类,它读取一个文本文件并将一些信息存储在 provate 变量中。为了解析文件,我使用了正则表达式库。在编译过程中出现我无法理解的错误。 首先,我为我的班级制作了一个共享对象库。之后我尝试编译测试程序。这里出现错误:未定义的对 std::regex_iterator 的引用...
我在 unix 机器上使用以下命令进行编译:
g++ -c -fpic -m64 -std=c++11 Foo.h Foo.cpp
g++ -shared -m64 -std=c++11 -o libFoo.so Foo.o
g++ -m64 -std=c++11 -I. -L. -lFoo -o camelTest Foo.h main.cpp
为了重现错误,这里有一个小例子: example
提前感谢您的帮助
【问题讨论】:
-
你确定你的 C++ 库支持正则表达式吗?
-
您需要使用 GCC 4.9 才能获得
<regex>支持 -
您使用的是哪个版本的 GCC? GCC 直到最近才支持标准库中的正则表达式。
-
试试 Boost.Regex 或 Boost.Xpressive。
-
我不知道 C++ 是否支持正则表达式,但我认为是的。当我在最后一个命令中不包含 Foo.h 时也会发生错误。
标签: c++ regex shared-libraries fpic