Есть ли какой-либо инструмент, который может напрямую протестировать, если библиотека создана для 32 или 64 бит?
У вас есть статическая библиотека, есть ли простой способ узнать, что это для 32-битного или 64-битного?
Ответ 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 бит.