Есть статический lib, есть ли простой способ узнать, что это для 32 бит или 64 бит?


есть ли инструмент, который может непосредственно проверить, если библиотека сделана для 32 или 64 бит?

4 53

4 ответа:

можно использовать dumpbin утилиты /headers опции

он возвращает, была ли библиотека построена для 32 или 64-разрядной архитектуры.

Регистрация здесь для сведения.

пример использования:

c:\>dumpbin libXYZ.lib /headers

Запустите командную строку visual studio, чтобы убедиться, что ваш путь может найти dumpbin.exe

Pipe to findstr, чтобы сэкономить на большой извергать о каждом разделе и, возможно, вы можете использовать подстановочный знак для анализа папки библиотек.

dumpbin /headers *.lib | findstr machine

пример того, что вы ищете;

8664 machine (x64)

Я не пробовал это, но вы можете также использовать file.exe, unix file эквивалент в windows. Вы можете скачать двоичный файл (и источник также) от здесь или версия gnu здесь

в Visual Studio, мы можем узнать о том, является ли сайт lib/DLL является 32-или 64-разрядная с Coreflags.исполняемый Это средство автоматически устанавливается вместе с Visual Studio. мы можем запустить эту команду из командной строки, которая может быть запущена как

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

эта команда вернет вам, является ли этот файл управляемым или неуправляемым. Если его управлял тогда он может дать информацию о том, что это 32/64 бит.