Have a static lib, is there a simple way to know it is for 32 bit or 64 bit?

C++WindowsVisual C++32bit 64bit

C++ Problem Overview


Is there any tool that can directly test if a library is made for 32 or 64 bit?

C++ Solutions


Solution 1 - C++

Run a visual studio command prompt to ensure your path can find dumpbin.exe

Pipe to findstr to save on the big spew about each section and optionally you can use a wildcard to analyse a folder of libs.

dumpbin /headers *.lib | findstr machine

Example of what you're looking for;

8664 machine (x64)

Solution 2 - C++

You can use dumpbin utility with /headers option

It returns whether the library was built for 32 or 64 bit architecture.

Check DUMPBIN Reference for details.

Example usage:

c:\>dumpbin libXYZ.lib /headers

Solution 3 - C++

I haven't tried this but you can also use file.exe, the unix file equivalent on windows. You can download the binary (and source as well) from here or gnu version here

Solution 4 - C++

In visual studio, we can get to know about whether Lib/dll is 32 or 64 bit with Coreflags.exe This tool is automatically installed with Visual Studio. we can run this command from Command line, which can be run as

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

This command will return you whether that file is managed or Unmanaged. If its managed then it can give info about that is is 32/64 bit.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser705414View Question on Stackoverflow
Solution 1 - C++Jet Set WillyView Answer on Stackoverflow
Solution 2 - C++Alok SaveView Answer on Stackoverflow
Solution 3 - C++Vikram.exeView Answer on Stackoverflow
Solution 4 - C++Ayush joshiView Answer on Stackoverflow