undefined reference to symbol ‘dlsym@@GLIBC_2.4‘ 解决
下面来看一下我编译时报错的信息
下面我再给出一个代码,大家运行一下
#include <stdio.h>void test(void)
{printf("Hello World");
}
//保存以.c文件,并且以gcc -fPIC --shared a.c -o liba.so 运行
下面再运行一个代码
#include <stddef.h>
#include <dlfcn.h>int main(void)
{void *handle = dlopen("./liba.so", RTLD_NOW | RTLD_GLOBAL);if (handle != NULL){void (*pfun)(void) = dlsym(handle, "test");pfun();dlclose(handle);}return 0;
}
//同样以.c文件保存 先以gcc -Wall b.c -o b运行
是不是报错了,这是一个平常随处可见的错误,想想为什么?
//最后以这样运行试试呢
gcc -Wall b.c -o b -ldl
是不是不报错了,我们多加了什么?参数?-ldl 意思就是去找libdl.so这个动态库
再想想为什么会报了“ undefined reference to symbol ‘dlsym@@GLIBC_2.4’ ”这个错误,因为没有找到dlsym函数
最后再运行b文件呢?
和大佬交流后,才知道这是跟C库版本有关,C库2.4版本有个dlsym,其他2.5版本也有可能有个dlsym函数。GLIBC_2.4—glibc 就是指 GNU 开发的C语言库——GNU library C。
查看man dlsym 也明确指出需要-ldl
更多请关注下一篇
undefined reference to symbol ‘dlsym@@GLIBC_2.4‘ 解决相关推荐
- 【Makefile】报错:undefined reference to symbol ‘pthread_spin_init@@GLIBC_2.2.5‘
详细报错截图: gcc -std=gnu99 -Wall -O0 -g -o /home/book/SVN/LM20007/automatic_test/bin/autoTest /home/book ...
- 解决undefined reference to symbol ‘sem_close@@GLIBC_2.2.5‘问题
错误图示 问题原因 编译的时候,没有引入库文件 sem()位于pthread库中,所以在编译和链接时请确保使用-pthread标志,因此在编译的时候需要导入pthread库文件 编译的顺序出现问题 ...
- clion编译器解决undefined reference to symbol ‘shm_open@@GLIBC_2.2.5‘
修改CMakelists文件 cmake_minimum_required(VERSION 3.17) project(mutex_learn)set(CMAKE_CXX_STANDARD 14)se ...
- undefined reference to symbol' pthread_create@@GLIBC_2.2.5'
我在ubuntu16.04上迁移工程,遇到了这个错误. pthread库不是Linux系统默认的库,链接时需要添加-pthread参数. 这里注意是链接那一步添加-pthread,而不是编译选项.
- 解决undefined reference to symbol ‘LZ4_decompress_safe‘问题
文章目录 问题描述 解决方法 参考资源 问题描述 make时碰到如下问题 /usr/bin/ld: CMakeFiles/nearest_neighbors.dir/nearest_neighbors ...
- undefined reference to symbol ‘_ZN2cv7imwriteERKNS_6StringERKNS_11_InputArrayERKSt6vectorIiSaIiEE‘
ubuntu系统,先装了opencv2.4.9,后来又安装了opencv3.0,qt下编译项目报错: :-1: error: tracker_run.o: undefined reference to ...
- opencv undefined reference to symbol '_ZN2c...异常
异常: /usr/bin/ld: ./src/flann.o: undefined reference to symbol '_ZN2cv5flann12SearchParamsC1Eifb' 解决: ...
- openssl:undefined reference to symbol 'EVP_EncryptUpdate@@libcrypto.so.10'
openssl:undefined reference to symbol 'EVP_EncryptUpdate@@libcrypto.so.10' 查看 openssl 版本: $ openssl ...
- SLAM 14讲中cere拟合曲线代码报错:undefined reference to symbol ‘omp_get_num_threads@@OMP_1.0‘
视觉SLAM 14讲中cere拟合曲线代码报错: /usr/bin/x86_64-linux-gnu-ld: /usr/local/lib/libceres.a(coordinate_descent_ ...
最新文章
- 全民K歌内容挖掘与召回
- 使用Identity Server 4建立Authorization Server (3)
- Android:屏幕旋转
- 干货!操作系统基础知识汇总!转给要面试的同学吧
- docker初级操作
- 「源码分析」CopyOnWriteArrayList 中的隐藏知识,你Get了吗?
- EL表达式和JSTL标签库学习总结
- 实战 | 应急响应方法论思维导图
- 编译原理用C语言编写递归下降分析程序,编译原理递归下降分析器(C语言).pdf
- MapReduce 基础案例 之 平均值 计算
- 安徽计算机软件工程学院,安徽软件工程专业大学排名
- 魔板(最小步数模型)
- 生产环境使用 pt-table-checksum 检查MySQL数据一致性【转】
- 苹果状态栏HTML,iphoneX 适配客户端H5页面的方法教程
- 什么是ARPU与ARPPU ?
- 个人站长网站建设流程
- 【掘金使用技巧7】如何从通达信等迁移到掘金
- java编程文件传输_JAVA文件传输程序
- c++入门必学算法 并查集
- 22 行 JS 黑掉英国航空,38 万乘客受害;公有云被频繁用于 DDoS 攻击