【发布时间】:2012-02-14 11:39:06
【问题描述】:
我正在尝试构建一些代码。这是我得到的错误:
main.o: In function `__static_initialization_and_destruction_0':
/home/jmbeck/Downloads/boost_1_48_0/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
还有更多,但我认为这无关紧要。
这是构建命令:
g++ -I/home/jmbeck/Downloads/boost_1_48_0
-L/home/jmbeck/Downloads/boost_1_48_0/stage/lib
-lm
-lboost_system
-lboost_thread
-lboost_regex
main.cpp
/home/jmbeck/Downloads/boost_1_48_0/stage/lib 目录包含预期的文件:
libboost_system.a
libboost_system.so@
libboost_system.so.1.48.0*
libboost_thread.a
libboost_thread.so@
libboost_thread.so.1.48.0*
libboost_regex.a
libboost_regex.so@
libboost_regex.so.1.48.0*
... etc...
我尝试构建一个不使用预编译库的快速程序,它编译得很好。它会找到适当的标头,但不会找到库。
我做错了什么?
【问题讨论】:
-
你可以使用
-Wall选项到g++,你可以使用-v来理解它在做什么,-H来理解它已经找到的头文件。您的错误是链接错误(缺少库或顺序错误)。 -
我的实际 Makefile 确实使用了 -Wall 和 -v(和 -Wextra)。我想深入了解基础知识。但这对未来的观众来说是一个很好的提示;它以前对我有帮助。