最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
整理linux编译link出undefined reference’dlclose’错误解决办法
时间:2015-01-29 编辑:简简单单 来源:一聚教程网
对于linux我持中立态度,而且我认为linux这么多年发展比较慢的原因是因为桌面化做的不好或者不够好,所以我比较偏爱ubuntu。
由于以前项目是makefile的,我个人不是很喜欢makefile,因为他看起来比较费劲,而且编译完成后出现问题调试是个大难题,不是每个人都精通gdb,而且vi上手比较难。所以将工程转为codeblocks的cbp,本来想使用cmake的,但是觉得要写的比较多,于是作罢,毕竟代码不是跨平台的,windows下没法用。
编译完link的时候,报了一句undefined reference’dlclose@xxx函数‘,不知道什么问题了,找主程过来看了下,说是dl库没有包进去,查了下dl库是用来做动态库加载的(dynamic load),项目用到了libmysqld.so,加了之后还是有问题,将-ldl链接选项改到最后才可以。
总结了下这些比较常见的undefined reference问题:
1.dl库
undefined reference to ‘dlerror’
undefined reference to ‘dlopen’
undefined reference to ‘dlerror’
增加-ldl链接选项 (-l是链接选项的前缀)
2.pthread库
undefined reference to ‘pthread_create’
undefined reference to ‘pthread_xxxx‘
增加-lpthread链接选项
3.rt库
undefined reference to `clock_gettime’
增加-lrt链接选项
如果是使用codeblocks,可以再link option里加,不过因为依赖顺序的问题,如果link option里加了还是报错,直接在link file里添加pthread dl rt等即可
如果是你自己的库出现这undefined reference什么函数,先去查下库的源代码,看看具体问题。
-
下一个: 高手整理的HTTPS攻击方法 很常见
相关文章
- linux编译ruby1.8.7错误问题解决办法 11-29
- linux下编译Spark教程详解 09-14
- linux编译找不到apr问题解决办法 12-11
- win11内核隔离和内存完整性介绍 10-31
- win10全屏缩放设置教程 10-31
- win10系统备份出错解决教程 10-31