Конференция "KOL" » Компиляция из консоли и замена системных модулей. [Delphi, Windows]
 
  • GradeMax (30.07.10 11:35) [0]
    Для спортивного интереса, попробовал откомпилировать KOL-проект используя компилятор Delphi из консоли.
    Столкнулся с проблемой - не могу заставить компилятор использовать замену системных модулей.

    Пробовал различные комбинации ключей, и даже волшебное слово "пожалуйста"... - НЕ ПОМОГЛО :)
    Уже не знаю что и делать - может в бубен постучать?...
  • Dufa © (30.07.10 14:16) [1]
    Вроде все просто... 'dcc32 ... -U"путь_к_сис"'
  • Darth Revan (30.07.10 17:28) [2]
    dcc32.exe --no-config -B -Q -AWinTypes=Windows;WinProcs=Windows -DRELEASE;KOL_MCK -I"%CD%";"%CD%\Libs" -LE"%CD%";"%CD%\Libs" -LN"%CD%";"%CD%\Libs" -NB"%CD%";"%CD%\Libs" -O"%CD%";"%CD%\Libs" -R"%CD%";"%CD%\Libs" -U"%CD%";"%CD%\Libs" -K00400000 -NO"%CD%";"%CD%\Libs" "Тут имя проекта"

    В данной строке идёт поиск библиотек в текущем каталоге и в его подкаталоге "Libs". --no-config нету в компиляторе Delphi 7 и ранее. В Delphi 2007 и позднее есть (между - пробел).
  • Darth Revan (30.07.10 17:36) [3]
    SysInit и System компилятор воспринимает только в *.dcu виде (он лжёт про pas, когда не находит dcu). Т.е. использовать замену в *.pas-виде просто бессмысленно.
  • GradeMax (30.07.10 18:40) [4]
    Перепробовал все вышеперечисленные варианты... Проект собирается, но упорно не хочет использовать замену системных модулей.

    Поэтому, предлагаю конкретный вариант...

    Предположим, что:
    Компилятор и стандартные библиотеки находятся в папке "C:\KOLComp"
    Замена системных модулей находиться в папке "C:\KOLComp\SysDcu"
    Проект который надо откомпилировать (1.dpr) находиться в папке "D:\MiProg\1.dpr"

    Вопрос: Какую командную строку мне нужно передать компилятору?... Чтобы при компиляци использовались замены системных модулей???
  • Dufa © (30.07.10 19:17) [5]
    C:\KOLComp\dcc32.exe -U"C:\KOLComp\SysDcu" D:\MiProg\1.dpr

  • GradeMax (30.07.10 20:24) [6]

    > C:\KOLComp\dcc32.exe -U"C:\KOLComp\SysDcu" D:\MiProg\1.dpr


    Компилятор выдает ошибку:
    File not found "System.pas"

    А вот такой  вариант:
    C:\KOLComp\dcc32.exe -U"C:\KOLComp";"C:\KOLComp\SysDcu" D:\MiProg\1.dpr



    Откомпилируется, но без замены системных модулей!
  • Darth Revan (30.07.10 21:38) [7]
    GradeMax
    Как я уже писал, компилятор солгал. Ему нужны ТОЛЬКО dcu -файлы!
  • Hallif © (31.07.10 17:28) [8]

    > и даже волшебное слово "пожалуйста"...

    2 GradeMax, вольный перевод "пожалуйста" на языке препроцессора примерно таков:
    -q system -m -y -z -$D-
    собирайте в модули расположив их в каталоге рядом с dcc32, позже удалите *.pas версию system
  • Dufa © (31.07.10 19:31) [9]

    > Компилятор выдает ошибку:
    > File not found "System.pas"


    Скорее всего те сис. модули скомпилированы другим dcc. Откомпилируй их заново, как в посте выше написано
  • GradeMax (02.08.10 19:12) [10]
    Хочется поделиться тем, что у меня получилось...
    Удалось добиться компиляции файлов замены системных модулей. Для этого необходимо создать bat-файл со следующим содержимым:

    DCC32 -Q system.pas sysinit.pas SysSfIni.pas SYSWSTR.PAS -M -Y -Z -$D- -O



    Перед компиляцией, сам компилятор Delphi и файлы замены системных библиотек следует разместить в отдельной папке.

    В принципе, задача решена...

    Всем спасибо за помощь!!!
 
Конференция "KOL" » Компиляция из консоли и замена системных модулей. [Delphi, Windows]
Есть новые Нет новых   [120350   +22][b:0][p:0.001]