Delphi 7 делает жалобы на файлы не найдены - PullRequest
1 голос
/ 25 сентября 2008

У меня есть файл BPG, который я изменил для использования в качестве файла make для сервера автоматической сборки нашей компании. Чтобы заставить его работать, я должен был изменить

Uses                       *  Uses
  unit1 in 'unit1.pas'     *   unit1
  unit2 in 'unit2.pas'     *   unit2
   ...                     *    ...

в файле DPR, чтобы заставить его работать без компилятора, давая мне некоторую болтовню о unit1.pas, не найденном. Это раздражает, потому что я хочу использовать файл BPG для фактического просмотра материала в моем проекте, и каждый раз, когда я добавляю новый модуль, он автоматически вставляет этот файл в файле unitx.pas в мой файл DPR.

Я использую make -f [then some options], компилируемые мной DPR не находятся в том же каталоге, что и файл make, но я не уверен, что это имеет значение. Все компилируется нормально до тех пор, пока удаляется in 'unit1.pas.

Ответы [ 3 ]

2 голосов
/ 25 сентября 2008

Это может быть связано с тем, что путь поиска в IDE и путь поиска компилятора командной строки не совпадают. Если вы измените путь поиска компилятора командной строки, вы сможете использовать точно такой же исходный код, что и в IDE.

Одна возможность настроить путь поиска для компилятора командной строки - это сделать его в файле с именем dcc32.cfg. Посмотрите на справку, в IDE-справке есть краткое описание dcc32.cfg.

1 голос
/ 25 сентября 2008

Ну, этот обходной путь работал для меня.

//{$define PACKAGE}
{$ifdef PACKAGE}
 uses 
  unit1 in 'unit1.pas'
  unit2 in 'unit2.pas'
   ... 
{$else}
 uses 
  unit1 
  unit2
   ...
{$endif}

Единственная проблема - когда вы добавляете новый юнит, delphi стирает ваш ifdef package вверху.

0 голосов
/ 25 сентября 2008

Каждый раз, когда мне нужно поместить условные выражения в файл проекта, я делаю это:

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

uses
{$IFDEF UseD7MM}
  Delphi7MM;
{$ELSE}
  FastMM4;
{$ENDIF}

implementation

end.

Может быть, этот трюк работает и в пакетах. Никогда не пробовал.

...