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

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

【问题讨论】:

    标签: c++ windows visual-c++ 32bit-64bit


    【解决方案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 位。

      【讨论】:

        猜你喜欢
        • 2011-10-06
        • 1970-01-01
        • 2011-12-20
        • 2016-02-06
        • 2013-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-03
        相关资源
        最近更新 更多