gpt4 book ai didi

c - dumpbin 报告静态库的错误目标架构

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:37 24 4
gpt4 key购买 nike

我不明白为什么在 Visual Studio 命令行上执行以下命令时 dumpbin 返回 x64:

dumpbin libgmp.lib /HEADERS |more

这是在Cygwin 32位版本下编译的GMP库,编译配置如下:

./configure --host=i386 ABI=32

构建系统为指定主机成功编译并构建了所有文件。然而,dumpbin 仍然报告 .a 或 .lib 适用于 64 位架构。

请注意,输出静态库是 libgmp.a,但我将其扩展名更改为 .lib 并将其与我的 Visual Studio 项目链接,没有出现任何问题。

另一个重要说明:将 libgmp.lib 与 32 位程序链接是可以的,并生成一个 PE32 文件,如 CFF Explorer 所报告的。

这是转储解释错误,还是我漏掉了一些重要的东西?

最佳答案

似乎没有64bit32bit 静态库类型。使用 objdumpdumpbin 对库执行一些断言后,两者都报告了正确的信息。

objdump 报告一些目标文件是 64 位的,而其他的是 32 位的。dumpbin 做了同样的事情。

问题从GMP构建系统中冒出来;它将 64 位和 32 位目标文件嵌入到静态库中。

只要您不使用在其中一个 64 位目标文件中找到的任何工具,您的程序就会正确链接到 32 位应用程序,这解释了 CFF 的输出。

要解决此问题,您必须联系 GMP 网站。

关于c - dumpbin 报告静态库的错误目标架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28635707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com