linux加载动态库时报符号未找到的记录#
我遇见的这个问题的原因比较简单,是我在编译时本应该以动态库方式(dlopen函数显式加载)但是由于宏定义错误,导致是静态库加载,导致该问题出现;
思路
1.任务是将x86架构的动态库移植到ARM架构下,使用nm -D 命令查看两个动态库的符号表,发现了arm下的符号表比x86架构下的多了一些符号;这里我们可以用ldd -r x.so 来查看我们的动态库是否正确;
2.然后定位到了是直接用了静态加载的方式,这里说明下,动态加载不会对声明的符号导入到符号表中,但是静态加载会;
注:尝试了一些其他的方法,包括在编译显示增加-l来连接动态库。