undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' 的修改方法


在编译DSO代码的时候会如下这样的问题:

检查DSO,在程序中没有用到pthread,但是在编译的时候却出现此类问题。仔细想了想了一下,在程序中用到了C++11中的线程std::thread,个人猜测C++11在封装线程std::thread时应当是使用到了pthread,pthread不是linux下的默认的库,也就是在链接的时候,无法找到phread库中线程函数的入口地址,于是链接会失败。

解决方法:

最简单的就是,打开CMakeLists.txt ,在所有用到boost_thread 的后面加上 -pthread,如下图,保存并重新编译,发现已经解决。

 若未解决问题,可参考下列内容:

1.https://blog.csdn.net/hust_superman/article/details/37655891

2. https://www.cnblogs.com/yxysuanfa/p/7019725.html 

3.https://blog.csdn.net/csdn_zyp2015/article/details/73087318

 

 

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM