一、nm
在调用动态库的时候,经常出现由于动态库接口修改或者版本不匹配导致调用动态库找不到函数接口符号的情况。
原因可能有如下几种:
1.由于c++动态库编译没有加extern c导致函数编译时加了c++的前缀的;
2.系统中有多个库,程序加载了其他路径的库;
3.库的版本不对,老版本的库确实没有新加的接口。
这个时候就可以用nm命令看so中是否有提示找不到的符号。
ref:
一、nm
在调用动态库的时候,经常出现由于动态库接口修改或者版本不匹配导致调用动态库找不到函数接口符号的情况。
原因可能有如下几种:
1.由于c++动态库编译没有加extern c导致函数编译时加了c++的前缀的;
2.系统中有多个库,程序加载了其他路径的库;
3.库的版本不对,老版本的库确实没有新加的接口。
这个时候就可以用nm命令看so中是否有提示找不到的符号。
ref: