문제

회사의 자동화 된 빌드 서버를위한 제조 파일로 사용하도록 수정 한 BPG 파일이 있습니다. 작동하기 위해서는 변경해야했습니다.

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

DPR 파일에서 컴파일러없이 작동하도록하기 위해 Unit1.pas를 찾을 수 없습니다. BPG 파일을 사용하여 실제로 프로젝트의 내용을보고 싶고 새 장치를 추가 할 때마다 'initx.pas'에있는 DPR 파일에 자동 잭이 필요하기 때문에 이것은 성가신 일입니다.

나는 뛰고있어 make -f [then some options], DPR은 제가 컴파일하는 것이 Make 파일과 동일한 디렉토리에 있지 않지만 이것이 중요하지는 않습니다. 모든 것이 오래된만큼 잘 컴파일됩니다 in 'unit1.pas 제거됩니다.

도움이 되었습니까?

해결책

IDE의 검색 경로와 명령 줄 컴파일러의 검색 경로가 동일하지 않다는 사실에서 나올 수 있습니다. 명령 줄 컴파일러의 SARACH 경로를 변경하면 IDE 내에서와 동일한 소스 코드를 사용할 수 있습니다.

명령 줄 컴파일러의 검색 경로를 구성 할 수있는 한 가지 가능성은 DCC32.cfg라는 파일로 수행하는 것입니다. 도움말을 살펴보면 IDE-HELP에 DCC32.CFG에 대한 간단한 설명이 있습니다.

다른 팁

글쎄,이 작업은 저에게 효과적이었습니다.

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

유일한 문제는 새 장치를 추가 할 때마다 Delphi가 지우는 것입니다. ifdef package 상단에.

조건부를 프로젝트 파일에 넣을 때마다 다음을 수행합니다.

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

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

implementation

end.

어쩌면이 트릭은 패키지에서도 작동합니다. 시도한 적이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top