Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Подробнее о здесь.

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

c:\>dumpbin libXYZ.lib /headers

Ответ 2

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

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

dumpbin/headers *.lib | findstr machine

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

8664 machine (x64)

Ответ 3

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

Ответ 4

В visual studio мы можем узнать, есть ли Lib/dll 32 или 64 бит с Coreflags.exe Этот инструмент автоматически устанавливается с помощью Visual Studio. мы можем запустить эту команду из командной строки, которую можно запустить как

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

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