Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2010, 11:11   #21
Obsever0
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 19
По умолчанию

Безусловно,так было бы проще.
Serge_Bliznykov, можешь поподробнее написать как это сделать

Друзья, есть еще одна загвоздка.
Компилирую проект вот такой строкой
'C:\dcc32.exe -B C:\Folder\Project1.dpr'
Сложность в том, что ему вообще не нужен файл Unit1.pas, т.е. он не ищет в нем ошибки. Компилятору нужен Unit1.dcu, а это Unit1.dfm+Unit1.pas. Если Unit1.dcu нет, то ругается,но если запустить сам проект в делфи без Unit1.dcu, то он его создает. Значит как-то его можно получить.
Ключ -B - означает собирание всех модулей, а как то не работает
Вопрос: Как запустить компилятор, чтобы он просмотрел Unit1.pas на наличие ошибок
Или как консольно создать dcu

Последний раз редактировалось Obsever0; 14.07.2010 в 13:49.
Obsever0 вне форума Ответить с цитированием
Старый 14.07.2010, 12:09   #22
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Но сложно
Не сложнее чем экономкой картошку чистить
Цитата:
Obsever0
Winexec(PChar(ProgramName+' > out.txt'),1);
А потом считывай out.txt
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.07.2010, 14:47   #23
Obsever0
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 19
По умолчанию

Разобрался сам, может кому понадобится:
Чтобы компилятор проверял код на ошибки, нужно скачала натравить его на Unit
ExecNewProcess('"C:\dcc32.exe" "C:\Folder\unit1.pas"');
После этого создаться файл dcu, который нужен, чтобы создать exe
А потом на файл проекта
ExecNewProcess('"C:\dcc32.exe" "C:\Folder\Project1.dpr"');
Притом если к Unit прицеплены другие модули он их тоже проверит!
Obsever0 вне форума Ответить с цитированием
Старый 14.07.2010, 15:06   #24
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Зачем такие танцы? Компилятор сам соберёт все модули, перечисленные в uses проекта.
пыщь
JTG вне форума Ответить с цитированием
Старый 15.07.2010, 13:27   #25
Obsever0
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 19
По умолчанию

Но вот почему-то не собирает проект,может что-то не так делаю:
Код:
function ExecNewProcess(ProgramName : String): boolean; 
var
 StartInfo : TStartupInfo;
 ProcInfo : TProcessInformation;
begin
  FillChar(StartInfo,SizeOf(TStartupInfo),#0);
  FillChar(ProcInfo,SizeOf(TProcessInformation),#0);
  StartInfo.cb := SizeOf(TStartupInfo);

  result:= CreateProcess(nil, PChar(ProgramName), nil, nil,False,
    CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS,
    nil, nil, StartInfo, ProcInfo);
end;

begin
  ExecNewProcess('C:\dcc32.exe -b C:\PROJECT\Project1.dpr');
 readln;
end.
хотя в uses перечислены необходимые unit:
Код:
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  New_form in 'Form\New_form.pas',
  angle in 'Angle\angle.pas';

Последний раз редактировалось Stilet; 15.07.2010 в 14:19.
Obsever0 вне форума Ответить с цитированием
Старый 15.07.2010, 16:17   #26
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

А так?

dcc32 -W -H -U"C:\путь_к_froms_и_остальным\Li b" -U"C:\путь_к_своим_модулям\" "C:\PROJECT\project1.dpr"
пыщь
JTG вне форума Ответить с цитированием
Старый 16.07.2010, 09:20   #27
Obsever0
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 19
По умолчанию

Попробовал, как ты предложил. Работает в случае если:
-U"C:\путь_к_своим_модулям\" лежат свои_модули.dcu
Если их там нет, то их требует, т.е. сам не собирает проект.
dcc32 - это же компилятор, может он и не должен собирать,
есть еще make.exe - может им как-то можно собрать?

Это просто удивительно написал bat файл и туда просто: dcc32 project1.dpr
Он собирает весь проект, создает все необходимые dcu для unit, которые лежат в разных папках.

Решение найдено: нужно сделать текущей папку проекта, который нужно откомпилить: SetCurrentDir('C:\PROJECT');
И вызвать: ExecNewProcess('dcc32 project1.dpr')
В результате он все модули откомпилирует, покажет ошибки если есть!

Последний раз редактировалось Obsever0; 16.07.2010 в 10:42.
Obsever0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компилятор для Delphi 7 |{ () T Общие вопросы Delphi 7 31.12.2019 18:18
Компилятор Avel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 27.11.2008 18:14
Компилятор Лубышев Помощь студентам 7 15.10.2008 18:53
компилятор ZhekON Общие вопросы Delphi 6 13.09.2007 18:00