Вопрос по линковке

Тема в разделе "WASM.BEGINNERS", создана пользователем Eretic, 10 июл 2009.

  1. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    Приветствую всех кто зашёл в темку!
    Натренировавшись в досе решил начать изучать "Уроки Iczelion'а". И тут возникла проблемка. Т.к. win32 значит и линковщик нужен соответствующий. В папке лежит тока link16 и link. Ни то ни то не подходит. Почитал поиск по форуму. Скачал Visual C++ 2008. link и ml там в папке bin есть. Но прописывая в bat:
    Код (Text):
    1. c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\ml c:\masm32\procs\my_practics\MSGBOX.ASM
    2. c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link c:\masm32\procs\my_practics\MSGBOX.obj
    ничего не получается. Открывается и закрывается консоль.

    Также скачал попробовал масм отдельно с мелкософта, он требует Visual C++ 2005. Качаю его, и он при установке сворачивается зараза. Почему тоже непонятно.

    Объясните что я неправильно делаю. И как правильно надо сделать
     
  2. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    Допиши в конец батника *pause*. Чтобы посмотреть чтож они тебе вывели.
    И ничего искать не нужно было http://www.masm32.com/, там ни плохой такой пакет MASM есть.
     
  3. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    Код (Text):
    1. c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\mll.exe /c /coff MSGBOX.ASM
    2. c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe /subsystem:windows MSGBOX.obj
    вот попробуй так.
     
  4. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    прописал паузу:
    Код (Text):
    1. c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link c:\masm32\procs\my_practics\MSGBOX.obj
    2. "c:\Program" не является внутренней или внешней командой, исполняемой программой или пакетным файлом
    по этой ссылке и качал как раз. После установки был link и link16. Ни тот ни другой не хотели линковать.
     
  5. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    Так, забей на VC9.
    Код (Text):
    1. c:\masm32\bin\ml.exe /c /coff MSGBOX.ASM
    2. c:\masm32\bin\link.exe /subsystem:windows MSGBOX.obj
    3. pause
     
  6. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Eretic
    нужно было в кавычки поместить строку:
    "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe" c:\masm32\procs\my_practics\MSGBOX.obj
     
  7. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    Ага. Спасибо. файл obj создался. но на строчке линка говорит:
    Код (Text):
    1. Приложению не удалось запуститься, поскольку mspdb80.dll не был найден. Повторная установка приложения может исправить эту ошибку.
    bat файл на данный момент таков:
    Код (Text):
    1. "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\ml.exe" c:\masm32\procs\my_practics\MSGBOX.ASM
    2. "c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\link.exe" c:\masm32\procs\my_practics\MSGBOX.obj
    3. pause
    Что такое? Visual C++ переставлять?
     
  8. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    скачал mspdb80.dll. Положил в папку c:\Program Files\Microsoft Visual Studio 9.0\VC\bin.
    теперь говорит что приложение или библиотека ...(путь к dll) не является образом программы для Windows NT. Проверьте назначение установочного диска.
    Какие бы дальше действия бы предпринять?
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Читай - http://wasm.ru/forum/viewtopic.php?id=33397
     
  10. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    брррр что-то я запутался. Зачем пользовать nmake? Почему нельзя компилить по тому же принципу что и дос-проги?
    Объясните пожалуйста как вы компилите и чем.
     
  11. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Так как ты начинающий, то пока можно ограничиться кнопкой Build All в queditor(он входит в пакет masm'a).
     
  12. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    Это меня не устраивает. Вы же тоже както разбирались! Помогите пожалуйста разобраться мне. Если много писать то направьте хотябы. Но желательно конечно поточнее:)
     
  13. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    Кстати vover, я както пропустил из виду 5 пост. Прописал в батнике:
    Код (Text):
    1. c:\masm32\bin\ml.exe /c /coff MSGBOX.ASM
    2. c:\masm32\bin\link.exe /subsystem:windows MSGBOX.obj
    3. pause
    Файл obj создаётся нормально.
    Ошибка вылетает следующая. Думаю это уже получше будет.
    Код (Text):
    1. LINK: fatal error LINK1104: cannot open file "kernel32.lib"
     
  14. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Ну я незнаю как объяснить то, что уже написано... Переписать заново чтоли?)
    Вот тут http://wasm.ru/article.php?article=1001002 же написано все.

    Вобщем создаешь бат файл, назовем compil.bat, его содержимое:
    Код (Text):
    1. P:\masm32\bin\ml.exe /c /coff /Cp MessageBox.asm
    2. P:\masm32\bin\link.exe /SUBSYSTEM:WINDOWS  /LIBPATH:P:\masm32\lib MessageBox.obj
    3. PAUSE
    Пути измени на свои.
     
  15. Eretic

    Eretic New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2009
    Сообщения:
    41
    TSS Огромное спасибо! Также огромное спасибо Booster и vover!