我不明白为什么dumpbin在Visual命令行上执行以下命令时返回x64:
dumpbin libgmp.lib /HEADERS |more这是在Cygwin 32位版本下编译的GMP库,具有以下构建配置:
./configure --host=i386 ABI=32生成系统成功地编译并构建了指定主机的所有文件。然而,dumpbin仍然报告说,.a或.lib用于64位架构。
注意,输出静态库是libgmp.a,但我将其扩展更改为.lib,并将其与Visual项目链接,没有任何问题。
另一个重要的注意事项:将libgmp.lib与32位程序连接起来很好,并生成一个PE32文件,正如CFF所报告的那样。
是垃圾桶解释的错误,还是我遗漏了一些重要的东西?
发布于 2015-02-21 05:01:03
似乎没有64bit或32bit静态库类型。在使用objdump和dumpbin对库执行了一些断言之后,两者都报告了正确的信息。
objdump报告了一些对象文件为64位,另一些则为32位。dumpbin也做了同样的事情。
这个问题源于GMP构建系统,它将64位和32位对象文件嵌入到静态库中。
您的程序将正确链接到32位应用程序,只要您不使用在64位对象文件中找到的任何工具,这就解释了CFF的输出。
为了解决这个问题,你必须联系GMP网站。
https://stackoverflow.com/questions/28635707
复制相似问题