克++未定义参考`升压::系统:: system_category()”(g++ undefined

2019-06-25 21:01发布

我已搜查高和低的回答这个问题。 我使用升压1.48和程序是非常简单的,因为我已经为了解决这个问题,打破它归结为最简单的形式。

#include <boost/filesystem.hpp>

int main(int argc, char **argv) {
    return 0;
}

++命令从我的生成文件执行的g为如下:

g++ -m32 -Wall -o mapnik-test -L/usr/lib -I/usr/include -I/usr/include/freetype2 -lpthread -lboost_system mapnik-test.cpp

错误的连接过程中的完整列表如下:

/tmp/ccIbmuee.o: In function `__static_initialization_and_destruction_0(int, int)':
mapnik-test.cpp:(.text+0x49): undefined reference to `boost::system::generic_category()'
mapnik-test.cpp:(.text+0x53): undefined reference to `boost::system::generic_category()'
mapnik-test.cpp:(.text+0x5d): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [mapnik-test] Error 1

我发现有很多人来自同一个问题的痛苦,但在大多数情况下,解决方案是提供boost_system库在LDFLAGS。 你可以从g ++命令行看到,我已经有这个规定。 我甚至试图连接明确反对libboost_system.a库无济于事。 我是唯一拥有此投诉?

Answer 1:

把源文件在命令行的开头。

尝试

g++ -m32 -Wall mapnik-test.cpp -o mapnik-test -L/usr/lib -I/usr/include -I/usr/include/freetype2 -lpthread -lboost_system

该库只应在源文件后指定,以便链接器可以解析源文件中的未定义的引用。



文章来源: g++ undefined reference to `boost::system::system_category()'