FASM и окружение

Тема в разделе "WASM.BEGINNERS", создана пользователем 00h, 2 апр 2010.

  1. 00h

    00h New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    27
    Перехожу с масма на фасм и имею некоторую проблему, а именно:

    Код (Text):
    1.     include 'win32w.inc' ; файл не найден
    2.     include '%fasminc%\win32wx.inc' ; файл не найден
    3.     include 'D:\fasmw168\INCLUDE\win32wx.inc' ; все ок
    В FASMW.INI значится [Environment] Include=D:\fasmw168\INCLUDE

    Где я туплю?
     
  2. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    Читай: ^ http://barmentalisk.sml.by/?p=198
     
  3. 00h

    00h New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    27
    Так, методом тыка я понял, что работает только при запуске из фасмовского редактора, что же - очень коварно.

    Что надо передать самому транслятору что бы он читал .ini и работал так, как я хочу?
     
  4. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    00h
    можно просто использовать переменные окружения
    если установить fasm = D:\fasm168 то следующая строчка сработает как надо
    include '%fasm%\include\win32wx.inc'
     
  5. 00h

    00h New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    27
    Установить - где?
     
  6. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    Мой компьютер -> Свойства -> Дополнительно -> Переменные среды
     
  7. 00h

    00h New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    27
    Вопрос в том что на своей машине я могу прописать и полный путь (как я пока и сделал), но при переносе же все это потеряется.
     
  8. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    Код (Text):
    1. for /f "usebackq eol=* delims=*" %I IN (`dir /b /s \fasm.exe`) DO echo set fasm=%~I > set.bat && set.bat
     
  9. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    прошу прощения. &~I надо взять в кавычки, а то будут глюки
     
  10. PowerASM

    PowerASM New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    59
    Код (Text):
    1. for /f "usebackq eol=* delims=*" %I IN (`dir /b /s \fasm.exe`) DO echo set fasm="%~I" > set.bat && set.bat
     
  11. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    00h
    Общесистемные переменные окружения лучше не трогать на случай возможных будущих конфликтов с другими приложениями.
    1) Если компилируете в fasmw, то, как Вы уже выяснили, следует в переменной include из раздела [Environment] через точку с запятой перечислить все папки, откуда Вы бы хотели брать инклуды.
    2) Если компилируете в RadAsm, то Option->Environment Variables. Аналогично нужно добавить переменную include с перечисленными через точку с запятой путями.
    3) Если Notepad++, то в скрипте nppexec в начале нужно указать ENV_SET include = ... дальше Вы уже догадались. :)
    4) Прикола компиляции в cmd или пакетными файлами не осознаю, но там аналогично: set include=...
    В общем чем запускаете компилятор, там и устанавливаете include.
    Разумеется, что после этого будет работать вариант include 'win32w.inc'.
     
  12. 00h

    00h New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2008
    Сообщения:
    27
    Т.е. в таком случае я указываю окружение где хочу, а в сорц не кладу батник - пусть гипотетический юзер компилит через оригинальный редактор
     
  13. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    768
    Я так раньше делал:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
    "fasm"="C:\I\Apps\Fasm\include"

    Сейчас юзаю Fasm.ini
    [Environment]
    Fasm=C:\I\Apps\Fasm\include

    А зачем IDE не использовать, там всёравно никаких же ключей нет типа /SUBSYSTEM ? =)