0

我开发了一个 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

在此先感谢您的帮助

4

1 回答 1

0

g++ -m64 -std=c++11 -I. -L. -lFoo -o camelTest Foo.h main.cpp -L%PATH_TO_USED_LIB% -l%NAME_OF_LIB%

If your lib is libregexp, then %NAME_OF_LIB% == regexp

The idea is:

Flag -L(uppercase) tells gcc where your libs are.

Flag l(lowercase) tells gcc which library should gcc link to your application.

于 2014-08-01T08:54:01.603 回答