Delphi 7对未找到的文件抱怨

时间:2008-09-25 04:45:16

标签: delphi makefile packages

我有一个BPG文件,我已将其修改为用作我们公司自动构建服务器的make文件。为了让它发挥作用,我不得不改变

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

在DPR文件中让它工作而没有编译器给我一些关于unit1.pas未找到的guff。 这很烦人,因为我想使用BPG文件实际查看项目中的内容,每次添加新单元时,它都会将'unitx.pas'中的内容自动插入到我的DPR文件中。

我正在运行make -f [then some options],我正在编译的DPR与make文件不在同一个目录中,但我不确定这是否重要。只要移除in 'unit1.pas,一切都会很好。

3 个答案:

答案 0 :(得分:2)

可能来自IDE中的搜索路径和命令行编译器的搜索路径不同。如果更改命令行编译器的serach路径,则可以使用与IDE中完全相同的源代码。

为命令行编译器配置搜索路径的一种可能性是在名为dcc32.cfg的文件中执行此操作。看看帮助,IDE-help中有dcc32.cfg的简短描述。

答案 1 :(得分:1)

这个解决方案对我有用。

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

唯一的问题是无论何时添加新单元,delphi都会删除顶部的ifdef package

答案 2 :(得分:0)

每次我必须将条件放入项目文件中时,我会这样做:

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

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

implementation

end.

也许这个技巧也适用于包。没试过。