有类似的问题,但他们的答案不适用于我的问题。我有一个C ++程序,顶部带有#include <boost/test/unit_test.hpp>
(包括其他项)。
为了正确编译,如果我理解的话,我应该执行以下命令:
g++ -g -L/path_to_boost_lib -lboost_lib myprog.cpp -o myprog.exe
如果我进行定位,则会得到/usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.
因此,我通过以下操作编辑了对g ++的调用:
g++ -g -L/usr/lib/x86_64-linux-gnu -lboost_unit_test_framework myprog.cpp -o myprog.exe
但是我仍然收到undefined reference to boost::unit_test
类型的错误。
我也尝试了包含增强文件夹的选项-I/usr/include/
,但没有成功。
是因为顺序。 GCC链接器从左到右遍历工件,它在目标文件中遇到的每个未知符号都必须由随后发生的工件来解决。