-
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 -файлы! -
> и даже волшебное слово "пожалуйста"...
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 и файлы замены системных библиотек следует разместить в отдельной папке.
В принципе, задача решена...
Всем спасибо за помощь!!!