LNK1104 при использовании MASM 64bit

В настоящее время я пытаюсь изучить сборку для Windows x64. Я попробовал пример кода с этого сайта Intel, но всякий раз, когда я пытаюсь скомпилировать его с помощью команды, приведенной в документе:

ml64 hello.asm /link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user32.lib /entry:Start

Я всегда получаю

Ошибка LNK1104

Я знаю, что это означает, что компилятор не может найти файл библиотеки, я погуглил проблему и быстро обнаружил, что мне нужна Visual Studio с Windows SDK, который я скачал и установил. Но до сих пор не могу найти kernel32.lib или же user32.lib в любых файлах, кроме системных файлов Windows.

Я попробовал все, и я просто не могу это исправить. Я надеюсь, что кто-то может помочь понять это.

1 ответ

Решение

Существует известный MASM32 SDK, созданный hutch--. Этот пакет содержит запрошенные библиотеки в (устаревшей) 32-разрядной версии.

Но есть также 64-битное обновление этого знаменитого пакета от hutch--:
Текущая сборка 64-битного MASM SDK.
Он должен содержать .inc а также .lib необходимые вам файлы и многое другое...

Это текущая сборка 64-битного MASM SDK. Это намного ближе к завершению, и с добавлением правильных двоичных файлов Microsoft, он способен создавать широкий спектр типов приложений. Его можно использовать двумя различными способами, он должен быть разархивирован из корневого каталога раздела, на котором он устанавливается. Вы можете либо добавить его вручную в установку MASM32 SDK, либо установить его на раздел, на котором нет MASM32, и просто переименовать каталог buildx64 в MASM32. Установка его в другом разделе является предпочтительной техникой, поскольку QE имеет свои меню и аксессуары, настроенные для построения 64-битного кода.

Вам все еще нужно добавить двоичные файлы Microsoft, которые обычно бывают из установки vs2017 или из более ранней версии для Win7 64. В каталоге bin64 есть файл с именем "Microsoft_File_List.txt", который показывает нужные вам файлы. Список взят из текущей версии Visual Studio 2017, и если это версия, которую вы используете, используйте ML64 из каталога "x86_amd64", размер которого составляет 402 584 байта.

В каталоге "buildx64" находится пакетный файл с именем "makeall.bat". Это нужно запустить, чтобы собрать все библиотеки и включить файлы.

Они являются золотым стандартом разработки сборок Windows.

Другие вопросы по тегам