DSO missing from command line 转载 Linux平台 2024年3月15日 15:57 夏至未至 601 当前内容 926 字,在路上,马上到,马上到 [TOC] ### 报错如下 /usr/bin/ld: ucmq-util.o: undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5' /usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line ### 问题原因分析 出现该问题的原因:pthread不是linux下的默认的库,也就是在链接的时候,无法找到phread库中线程函数的入口地址,于是链接会失败。 ### 解决方法如下 在makefile文件中的LIBS中添加lz -lrt -lm -lpthread 1. 记住报错位置: ucmq-util.o 2. 据错误提示在当前路径下搜索:grep -r ucmq-util.o,找到如下路径Makefile文件并依次打开寻找LIBS source/Makefile.in:ucmq-util.o: util.c source/Makefile:ucmq-util.o: util.c source/.deps/ucmq-util.Po:ucmq-util.o: util.c 定位到如下行,你发现了什么?是不是没有 “ -lpthread ”?这是问题关键所在! LIBS = -lz -lrt -lresolv -lnsl -lm -ldl -lbz2 然后将这行加上-lpthread,修改后如下(保存退出): LIBS = -lz -lrt -lresolv -lnsl -lm -ldl -lbz2 -lpthread 记得同时修改这两个文件 [root@localhost ucmq]# vi source/Makefile [root@localhost ucmq]# vi Makefile 修改后再编译,一切顺利!! ### 原文链接 https://blog.csdn.net/damaibao/article/details/103644641 本文标题: DSO missing from command line 本文作者: 夏至未至 发布时间: 2024年3月15日 15:57 最近更新: 2024年3月15日 15:58 原文链接: 许可协议: 署名-非商业性-禁止演绎 4.0 国际(CC BY-NC-ND 4.0) 请按协议转载并保留原文链接及作者 CMake(3) 上一个 Locale name "zh_CN.UTF-8" doesn't exist in your /home/sybase/locales/l 下一个 CentOS8快速升级gcc到高版本 请可爱的你登录后回复 评论列表 (0条) 查看更多评论
评论列表 (0条)