在 mingw 库中查找丢失的符号
Find missing symbols in mingw library
给定 ar 库和可能的目标文件,找到所有未解析的外部符号的最佳方法是什么?一种可能是 运行 链接器然后捕获错误,但有时它会在一定数量的符号后停止。有没有更好的方法?
在您的 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
替换为对象列表相同
其中的文件。
给定 ar 库和可能的目标文件,找到所有未解析的外部符号的最佳方法是什么?一种可能是 运行 链接器然后捕获错误,但有时它会在一定数量的符号后停止。有没有更好的方法?
在您的 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
替换为对象列表相同
其中的文件。