C ++文件编译:-L和-I参数不适用于Boost库

问题描述 投票:0回答:1

有类似的问题,但他们的答案不适用于我的问题。我有一个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/,但没有成功。

c++ boost include g++ include-path
1个回答
0
投票

是因为顺序。 GCC链接器从左到右遍历工件,它在目标文件中遇到的每个未知符号都必须由随后发生的工件来解决。

© www.soinside.com 2019 - 2024. All rights reserved.