代码之家  ›  专栏  ›  技术社区  ›  Peter Turner

Delphi 7对找不到的文件提出投诉

  •  1
  • Peter Turner  · 技术社区  · 16 年前

    我有一个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 回复  |  直到 16 年前
        1
  •  2
  •   Jerome    16 年前

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

    为命令行编译器配置搜索路径的一种可能性是在一个名为dcc32.cfg的文件中进行配置。看一下帮助,在IDE帮助中有一个DCC32.CFG的简短描述。

        2
  •  1
  •   Peter Turner    16 年前

    这工作对我很有用。

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

    唯一的问题是每当你添加一个新的单元,Delphi就会删除你的 ifdef package 在顶部。

        3
  •  0
  •   gabr    16 年前

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

    program a;
    
    uses
      ACondUnits;
    
    ...
    


    unit ACondUnits;
    
    interface
    
    uses
    {$IFDEF UseD7MM}
      Delphi7MM;
    {$ELSE}
      FastMM4;
    {$ENDIF}
    
    implementation
    
    end.
    

    也许这个技巧也可以打包使用。从未尝试过。