1

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

用途 * 用途
  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删除,一切都可以正常编译。

4

3 回答 3

2

可能是因为IDE中的搜索路径和命令行编译器的搜索路径不一样。如果您更改命令行编译器的 serach 路径,您可能能够使用与 IDE 中完全相同的源代码。

为命令行编译器配置搜索路径的一种方法是在名为 dcc32.cfg 的文件中进行。看一下帮助,IDE-help中有dcc32.cfg的简短描述。

于 2008-09-25T09:25:06.660 回答
1

好吧,这种解决方法对我有用。

//{$定义包}
{$ifdef 包}
 用途
  “unit1.pas”中的unit1
  “unit2.pas”中的unit2
   ...
{$else}
 用途
  单元1
  单元2
   ...
{$endif}

唯一的问题是每当您添加一个新单元时,delphi 都会删除您ifdef package的顶部。

于 2008-09-25T04:48:37.277 回答
0

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

program a;

uses
  ACondUnits;

...


unit ACondUnits;

interface

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

implementation

end.

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

于 2008-09-25T07:27:21.203 回答