GCC 高版本7.4 编译链接 boost 报错 boost::thread::XXX’未定义的引用 解决方法

背景:开发中的项目之前一直用GCC4.8,boost库1.48版本的开发环境。现在因业务需求,需要更换GCC7.4,boost库1.70。

问题:可以正常编译BOOST的链接库文件,但是链接时候报错。

测试代码

报错如下:

/home/hzw/workspace/test1/boostTest.cpp:36:对‘boost::thread::join()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:37:对‘boost::thread::join()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:31:对‘boost::thread::~thread()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:30:对‘boost::thread::~thread()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:31:对‘boost::thread::~thread()’未定义的引用
/home/hzw/workspace/test1/boostTest.cpp:30:对‘boost::thread::~thread()’未定义的引用
/tmp/ccedvRmj.o:在函数‘boost::thread::thread<void (*)()>(void (*&&)())’中:

分析原因:

  经过一番折腾,最后发现是只换了链接库,没有换头文件。

解决方法:

  把1.48的头文件备份,并替换成1.70的头文件。或者修改include路径(-I选项)指向1.70的头文件路径

*改完之后记得把所有的工程文件都重新编译一下

上一篇:SOA面向服务架构简述


下一篇:composer安装自己的包