Проблема с компиляцией файла

Тема в разделе "WASM.BEGINNERS", создана пользователем Yura_A, 3 дек 2005.

  1. Yura_A

    Yura_A New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    4
    Адрес:
    Russia
    Привет всем! У меня возникла проблемка. Немного выучил ассемблер под дос, начал изучать под винду, но никак не получается скомпилировать файл. пробовал по разным учебникам - результат один. Команда ml /c /coff *.asm проходит нормально, а при линковании(link *.obj /subsystem:windows) вылазят ошибки:

    1) "LINK : warning L4017: /subsystem:unrecognized option name; option ignored"

    2) "*.obj : fatal error L1101: invalid object module

    Object file offset: 1 Record type: 4c"

    у меня установлен masm 6.11, windows Me
     
  2. IgorV

    IgorV New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2005
    Сообщения:
    2
    Адрес:
    Russia
    Скачай лучше masm 8.2 отсюда: movsd.com



    В чем проблема не знаю, возможно нужно писать в верхнем регистре - "link *.obj /SUBSYSTEM:WINDOWS"
     
  3. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Yura_A

    Версия линкера?
     
  4. Yura_A

    Yura_A New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    4
    Адрес:
    Russia
    спасибо, уже качаю. попробую может получится.



    линкер v5.31.009
     
  5. Yura_A

    Yura_A New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    4
    Адрес:
    Russia
    Спасибо огромное еще раз! C этим масмом все работает. только теперь возник ещё один вопрос - он не находит файлы библиотек (user32.lib, итд) хотя они находятся в папке lib. А если эти библиотеки копировать в папку с исходным файлом *.asm тогда компилируется без проблем. Неужели приходится всегда необходмые библиотеки и файлы *.inc копировать в ту же папку, или можно указать на путь до них в какихнибудь настройках?
     
  6. IgorV

    IgorV New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2005
    Сообщения:
    2
    Адрес:
    Russia
    Пожалуйста! ))

    Тут есть, как минимум, 2 решения:



    1. Прописать полный путь в includelib (напр. "includelib \masm32\lib\user32.lib"), с include почти также,(include \masm32\include\windows.inc);

    2. Указать линкеру папку с lib'ми с помощью "/LIBPATH". Например "link *.obj /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib";



    1-й способ мне кажется наиболее удобным.



    Еще, по-моему, можно установить переменной окружения "MASMLIB" путь к lib файлам…
     
  7. Yura_A

    Yura_A New Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    4
    Адрес:
    Russia
    Понял. :\ только не пойму как сам до этого не додумался...
     
  8. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    IgorV

    1-й способ мне кажется наиболее удобным.

    Imho - плохой способ.

    Гибчее использовать переменную среды окружения LIB.