Boost 静态库怎么不行

xukun245 2018-05-23 11:15:01
只是一个简单的linux下的测试,用的cmake写的
库连接成这样就可以(默认也是先用动态库)
target_link_libraries(test boost_thread boost_system)
或者指定动态库
target_link_libraries(test libboost_thread.so libboost_system.so)
但是指定静态库就不行,有人知道为什么吗
target_link_libraries(test libboost_thread.a libboost_system.a)

会出现类似这种错误
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libboost_thread.a(thread.o): In function `boost::detail::get_current_thread_data()':
thread.cpp:(.text+0x2d): undefined reference to `pthread_key_create'
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libboost_thread.a(thread.o): In function `boost::detail::set_current_thread_data(boost::detail::thread_data_base*)':
thread.cpp:(.text+0x6d): undefined reference to `pthread_key_create'
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libboost_thread.a(thread.o): In function `boost::thread::start_thread_noexcept()':
thread.cpp:(.text+0xe3): undefined reference to `pthread_create'

...全文
1626 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xukun245 2018-05-23
  • 打赏
  • 举报
回复
。。。。。又沉了
xukun245 2018-05-23
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
百度搜相关关键字。
我就是搜过了才来问的,请您以后不要回复我这种类似与授人以鱼不如授人以渔的话行吗
赵4老师 2018-05-23
  • 打赏
  • 举报
回复
百度搜相关关键字。
赵4老师 2018-05-23
  • 打赏
  • 举报
回复
Windows: 学会使用dumpbin.exe查看PE文件 学会使用depends.exe查看exe依赖的dll Linux: 学会使用objdump查看可执行程序或模块 学会使用ldd命令查看可执行程序依赖的so
X-Mirror94 2018-05-23
  • 打赏
  • 举报
回复
类似的问题都是一样的做法,如果是自带的库 只要动态链接就可以了,因为你要测试的机器上也都有自带的库,只把第三方的库写成静态链接,这样不需要移动第三方库,只需要把你的执行程序移动到另外一台机器上也是可以运行的
xukun245 2018-05-23
  • 打赏
  • 举报
回复
需要链接pthread的库,动态链接就可以了,因为机器上都有这个库函数
xukun245 2018-05-23
  • 打赏
  • 举报
回复
嗯 我说的对,结帖。
xukun245 2018-05-23
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
https://www.baidu.com/s?wd=boost%20静态库%20"undefined%20reference%20to%20%60pthread_key_create%27"
可能是我没说明白或者您没了解我的意思,我的意思是,我已经有了动态库和静态库,当我指定用动态库时,程序是可以跑的,但是当我指定静态库时就会出错,我分析可能是这个静态库还需要用到其他的库,但是我不知道怎么把库链接库,而且不知道分析的对不对
xukun245 2018-05-23
  • 打赏
  • 举报
回复
求救!!!!!!

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧