如何阅读nm命令:nm选项-T和-U(未定义)是什么意思?

时间:2017-05-03 17:22:13

标签: c++ gcc linker hpc nm

我有'libsimint.a'链接错误。

C:\Program Files\Git\usr\bin\ssh-agent.exe

我尝试使用nm命令来解决这个问题:

Linker messages (if any) follow...
/home/.../simint/lib/libsimint.a(shell.c.o): In function `simint_copy_shell':
shell.c:(.text+0x126): undefined reference to `__intel_ssse3_rep_memcpy'
/home/.../simint/lib/libsimint.a(shell.c.o): In function`simint_normalize_shells':
shell.c:(.text+0x4e3): undefined reference to `__svml_pow4'

根据我的理解(在nm man的帮助下),代码中提到了simint_copy_shell函数,但__intel_ssse3_rep_memcpy未在我们的libsimint编译的其他libray中定义。任何人都可以验证这一点或添加任何澄清吗?感谢

(我正在使用gcc编译和链接大型代码,这是用icpc编译的,而是。)

1 个答案:

答案 0 :(得分:1)

U表示“未定义” - 对象具有对符号的引用但没有定义

T表示在文本段中全局定义 - 对象定义并导出符号

手册页(man nm)列出了所有这些类型代码。