在mingw库中找到缺少的符号

时间:2017-10-28 18:27:09

标签: mingw-w64

给定ar库和可能的目标文件,找到所有未解析的外部符号的最佳方法是什么?一种可能性是运行链接器然后捕获错误,但有时它会在一定数量的符号后停止。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

mingw-w64安装的bin目录中,以及 C和C ++编译器,链接器和make工具,你应该是其他的 组成GNU binutils的程序。

其中一些(nmobjdumpreadelf)可以解析目标文件的符号表或共享或 静态库。最简单的用法可能是nm。假设 bin目录位于PATH中,打开命令提示符 在包含您的库或目标文件的目录中 感兴趣并运行:

nm -u libfoo.a

或:

nm -u foo.obj

列出libfoo.afoo.obj中的未定义符号。

如果这些文件包含您希望看到的C ++符号 将-C添加到nm选项。

这些工具都认识到静态库libfoo.a是公正的 对象文件的存档,以便nm ... libfoo.a为您提供 结果与libfoo.a替换为对象列表相同 其中的文件。