给定ar库和可能的目标文件,找到所有未解析的外部符号的最佳方法是什么?一种可能性是运行链接器然后捕获错误,但有时它会在一定数量的符号后停止。还有更好的方法吗?
答案 0 :(得分:0)
在mingw-w64
安装的bin
目录中,以及
C和C ++编译器,链接器和make工具,你应该是其他的
组成GNU binutils的程序。
其中一些(nm
,objdump
,readelf
)可以解析目标文件的符号表或共享或
静态库。最简单的用法可能是nm
。假设
bin
目录位于PATH
中,打开命令提示符
在包含您的库或目标文件的目录中
感兴趣并运行:
nm -u libfoo.a
或:
nm -u foo.obj
列出libfoo.a
或foo.obj
中的未定义符号。
如果这些文件包含您希望看到的C ++符号
将-C
添加到nm
选项。
这些工具都认识到静态库libfoo.a
是公正的
对象文件的存档,以便nm ... libfoo.a
为您提供
结果与libfoo.a
替换为对象列表相同
其中的文件。