未定义的引用`boost :: system :: generic_category()'

时间:2014-02-14 14:42:45

标签: c++ gcc boost

我的代码有问题。 我有这样的信息试图建立:

g++ -L /usr/local/boost_1_55_0 -Wall -pedantic -Iinc -c -lboost_system -pthread -lboost_thread  -o obj/glo.o src/glo.cpp

g++ -L /usr/local/boost_1_55_0 -Wall -pedantic -Iinc -c -lboost_system -pthread -lboost_thread  -o obj/serial.o src/serial.cpp

g++ -I /usr/local/boost_1_55_0 -Wall -lboost_system -pthread -o dwa obj/glo.o obj/serial.o

obj/glo.o: In function `__static_initialization_and_destruction_0(int, int)':
glo.cpp:(.text+0x15a): undefined reference to `boost::system::generic_category()'
glo.cpp:(.text+0x166): undefined reference to `boost::system::generic_category()'
glo.cpp:(.text+0x172): undefined reference to `boost::system::system_category()'
obj/glo.o: In function `boost::system::error_code::error_code()':
glo.cpp:(.text._ZN5boost6system10error_codeC2Ev[_ZN5boost6system10error_codeC5Ev]+0x17): undefined reference to `boost::system::system_category()'

和类似的。

你可以看到我已经给出了

-lboost_system -pthread -lboost_thread  and compiled system boost in /usr/local/boost_1_55_0

我不知道发生了什么。

1 个答案:

答案 0 :(得分:0)

当然,g ++找不到库boost_system。它应该位于/ usr / local / boost_1_55_0 / lib中。您可以添加选项“-v”来检查详细的错误消息。

g++ -v -L/usr/local/boost_1_55_0/lib -Wall -lboost_system -pthread -o dwa obj/glo.o obj/serial.o

命令应如下:

g++ -I/usr/local/boost_1_55_0/include -Wall -pedantic -Iinc -c -o obj/glo.o src/glo.cpp

g++ -I/usr/local/boost_1_55_0/include -Wall -pedantic -Iinc -c -o obj/serial.o src/serial.cpp

g++ -L/usr/local/boost_1_55_0/lib -Wall -lboost_system -pthread -o dwa obj/glo.o obj/serial.o