В общем, я не знаю что произошло, но у меня вдруг перестала работать опция /I (путь к include-файлам) в ml. Раньше всё работало, теперь выдаёт ошибку типа такого: Код (Text): pe.asm(8) : fatal error A1000: cannot open file : WINDOWS.INC В исходнике указано имя файла без пути: Код (Text): INCLUDE WINDOWS.INC Файл этот точно есть и точно по указанному пути. Если установить переменную окружения INCLUDE=этому пути или задать полный путь в исходнике, всё ок. Но это ещё не всё. Линкер тоже выдаёт (даже если прописать в исходнике полные пути к lib'ам): Код (Text): D:\pe.obj : warning LNK4033: converting object format from OMF to COFF pe.obj : error LNK2001: unresolved external symbol _ExitProcess@4 LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup pe.exe : fatal error LNK1120: 2 unresolved externals Т.е. ощущение, что не только /I перестал работать, но и /coff, например. Да и lib'ы почему-то не линкуются, судя по всему... Переустановка masm32 не помогает... Пробовал подменить даже содержимое папки bin (версия 6.14) файлами версии 6.11 (скачанной из инета) - та же ерунда. Т.е. проблема явно не в компиляторе самом, а в чём - ума не приложу! Загадка какая-то! Понимаю, что инфы мало, но даже не знаю что ещё сообщить. Всё, что было сделано (перед тем, как проблема появилась) - это компиляция пары исходников через ml64. Попытка установить MASMsetup.EXE, скачанный с сайта Microsoft (но вышла ошибка "MS Visual C++ Express Edition 2005 required" и забил это). Ну ещё я случайно скопировал несколько *.lib-файлов для 64 бит в папку lib для 32 бит (без замены, но потом удалил эти файлы). Обновление Notepad ++ я уж не беру в расчёт. Но в любом случай, повторюсь, masm32 (скачанный с masm32.com) я переустанавливал! Что делать? Может, кто-то сталкивался с этим уже? p.s. Исходник пустой: Код (Text): .586P .MODEL Flat,StdCall OPTION CASEMAP:NONE INCLUDE WINDOWS.INC INCLUDE KERNEL32.INC INCLUDE USER32.INC INCLUDELIB KERNEL32.LIB INCLUDELIB USER32.LIB .CODE Start: invoke ExitProcess, NULL END Start
Indy_, спасибо, заработало. Но! У меня несколько (хочется даже сказать "пару") дней назад стоял ml 6.14 и всё работало. И пути я не прописывал! Как это можно понять?
Jin X, Причин множество может быть, может авер или есчо какой софт мешает, может что то заразило систему или обновления.