linux命令之查看动态库符号-nm
来源:互联网 发布:tomcat centos 编辑:程序博客网 时间:2024/06/06 15:53
在调用动态库的时候,经常出现由于动态库接口修改或者版本不匹配导致调用动态库找不到函数接口符号的情况。
原因可能有如下几种:
1.由于c++动态库编译没有加extern c导致函数编译时加了c++的前缀的;
2.系统中有多个库,程序加载了其他路径的库;
3.库的版本不对,老版本的库确实没有新加的接口。
这个时候就可以用nm命令看so中是否有提示找不到的符号。
输入nm -h查看nm的选项如下:
用法:nm [选项] [文件] 列举 [文件] 中的符号 (默认为 a.out)。 The options are: -a, --debug-syms Display debugger-only symbols -A, --print-file-name Print name of the input file before every symbol -B Same as --format=bsd -C, --demangle[=STYLE] Decode low-level symbol names into user-level names The STYLE, if specified, can be `auto' (the default), `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java' or `gnat' --no-demangle Do not demangle low-level symbol names -D, --dynamic Display dynamic symbols instead of normal symbols --defined-only Display only defined symbols -e (ignored) -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd', `sysv' or `posix'. The default is `bsd' -g, --extern-only Display only external symbols -l, --line-numbers Use debugging information to find a filename and line number for each symbol -n, --numeric-sort Sort symbols numerically by address -o Same as -A -p, --no-sort Do not sort the symbols -P, --portability Same as --format=posix -r, --reverse-sort Reverse the sense of the sort --plugin NAME Load the specified plugin -S, --print-size Print size of defined symbols -s, --print-armap Include index for symbols from archive members --size-sort Sort symbols by size --special-syms Include special symbols in the output --synthetic Display synthetic symbols as well -t, --radix=RADIX Use RADIX for printing symbol values --target=BFDNAME Specify the target object format as BFDNAME -u, --undefined-only Display only undefined symbols -X 32_64 (ignored) @FILE Read options from FILE -h, --help Display this information -V, --version Display this program's version numbernm:支持的目标: elf64-x86-64 elf32-i386 elf32-iamcu elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big pe-x86-64 pe-bigobj-x86-64 pe-i386 plugin srec symbolsrec verilog tekhex binary ihex将 bug 报告到 <http://www.sourceware.org/bugzilla/>。
阅读全文
0 0
- linux命令之查看动态库符号-nm
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- Linux的nm查看动态和静态库中的符号
- nm命令查看库文件的符号
- nm命令 查看符号文件
- 查看库中的符号nm
- nm 命令 程序符号信息查看
- linux之nm命令
- linux之nm命令
- 查看.o, .obj文件符号列表,强大的nm命令
- 查看.o, .obj文件符号列表,强大的nm命令
- Hibernate 懒加载
- leetcode 26 Remove Duplicates from Sorted Array
- 【Scikit-Learn 中文文档】六: 支持向量机
- URL传参数解决中文乱码问题
- geojson 在线生成测试地址分享
- linux命令之查看动态库符号-nm
- Java中对于+和append拼接字符串效率的误解
- YUV视频格式详解(翻译自微软文档)
- mybatis中的sql标签和include标签
- spark RDD api
- 使用本地JConsole监控远程JVM(最权威的总结)
- echats图表插件
- 前后端日期类型的转换
- 表单提交时判断所有控件不能为空