有一个静态库,有没有一种简单的方法可以知道它是 32 位还是 64 位?

Posted

技术标签:

【中文标题】有一个静态库,有没有一种简单的方法可以知道它是 32 位还是 64 位?【英文标题】:Have a static lib, is there a simple way to know it is for 32 bit or 64 bit? 【发布时间】:2011-08-26 05:25:54 【问题描述】:

是否有任何工具可以直接测试库是为 32 位还是 64 位制作的?

【问题讨论】:

【参考方案1】:

运行 Visual Studio 命令提示符以确保您的路径可以找到 dumpbin.exe

到 findstr 的管道可以节省每个部分的大量数据,并且您可以选择使用通配符来分析 libs 文件夹。

dumpbin /headers *.lib | findstr machine

您正在寻找的示例;

8664 machine (x64)

【讨论】:

【参考方案2】:

您可以将dumpbin 实用程序与/headers 选项一起使用

它返回库是为 32 位还是 64 位架构构建的。

查看DUMPBIN Reference了解详情。

示例用法:

c:\>dumpbin libXYZ.lib /headers

【讨论】:

这样就可以了,寻找“文件头”部分【参考方案3】:

我还没有尝试过,但您也可以使用file.exe,在 Windows 上等效于 unix file。 您可以从 here 或 gnu 版本 here 下载二进制文件(以及源代码)

【讨论】:

这只是标准的 GNU File 工具,对吧?我已经尝试使用来自 Git for Windows 的最新版本的 MinGW 中的 file 进行此操作,它说 current ar archive 用于与 Python 3.6 (Windows) 一起分发的 x64 python36.lib【参考方案4】:

在 Visual Studio 中,我们可以通过 Coreflags.exe 了解 Lib/dll 是 32 位还是 64 位 此工具随 Visual Studio 自动安装。 我们可以从命令行运行这个命令,它可以运行为

 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\CorFlags.exe whatever_Lib_with_path

此命令将返回您该文件是托管的还是非托管的。 如果它托管,那么它可以提供有关它的信息是 32/64 位。

【讨论】:

以上是关于有一个静态库,有没有一种简单的方法可以知道它是 32 位还是 64 位?的主要内容,如果未能解决你的问题,请参考以下文章

将静态库转换为共享库?

有没有一种简单的方法可以在 C++ 中创建一个最小堆?

从 Swift 3.0 转换为 Swift 2.3

有没有办法防止使用依赖项提供的特定功能?

Linux下的静态库和动态库

有没有一种简单的方法可以将我在一个环境中拥有的相同 Python 库安装到新的 Python 环境中? [复制]