Не удалось использовать MASM с VS2013 (ошибка MSB3721/код выхода 1)

Я попытался скомпилировать код сборки через Visual Studio 2013 (обновление 2) и получил следующую ошибку:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\masm.targets(50,5): ошибка MSB3721: Der Befehl "ml.exe/c/nolgo/Zi/Fo" Debug\inffas32.obj" /W3 /errorReport:prompt /Ta"......\3rdParty\zlib-1.2.8\contrib\masmx86\inffas32.asm"" с обнаруженным кодом 1.

(действительно немецкая версия VS2013, но я считаю, что это не должно быть проблемой для этого вопроса)

На самом деле я пытаюсь скомпилировать дополнения zLib 1.2.8 MASM через VS2013. Я создал пустой проект, настроил сборку для MASM, добавил два файла (inffas32.asm и match686.asm) из пакета zLib. Я изменил проект, чтобы создать статическую библиотеку и установить подсистему для Windows. Но я получил сообщение об ошибке выше.

Если я попытаюсь скомпилировать файл вручную в оболочке VS2013 с помощью этой командной строки, все работает хорошо.

Вышеупомянутая процедура хорошо работала в VS2012, но теперь в VS2013 она больше не будет компилироваться (даже если я открою проект VS2012).

Я что-то упустил или это ошибка в сборке настройки MASM?


person Frank    schedule 31.05.2014    source источник
comment
Посмотрите в окне вывода дополнительные диагностические сообщения.   -  person Hans Passant    schedule 31.05.2014


Ответы (1)


Я нашел решение этой проблемы самостоятельно, которое может помочь и другим:

Компиляция кода выдает предупреждение A5000 из-за какой-то директивы .FPO в ассемблерном коде. Это предупреждение приведет к завершению работы ml.exe при уровне предупреждения выше 1.

Если я уменьшу уровень предупреждения до 1 или 0, это предупреждение не появится, и все работает.

Если кто-то знает, как отключить это «рассматривать предупреждение как ошибку», дайте мне знать. Настройка проекта этой функции НЕ работает для меня. В любом случае, никаких предупреждений, никаких ошибок, а .FPO просто контролирует выпуск отладочных записей. Итак, я считаю, что чистый код в порядке (закомментировать эту строку тоже было бы хорошо).

@Hans Passant: диагностический вывод не помогает. Я взглянул на это до вашего совета, но спасибо, что уделили время и посмотрели на мою проблему! :)

person Frank    schedule 01.06.2014
comment
Я также собирал zlib как внешний проект CMake. Можно рассмотреть возможность добавления -DAMD64=ON -DASM686=ON "-DCMAKE_ASM_MASM_FLAGS=/W0 /safeseh" к CMAKE_ARGS External_Project_Add. - person mlt; 26.11.2015