为什么Delphi没有在正确的文件夹中输出DCU文件?

WeG*_*ars 5 delphi win64 delphi-xe7

我有一个项目 (C:\Test\Test.dpr) 使用属于库 (MyLib.DPK) 的文件 (External.pas)。库中的所有文件都可以通过“搜索”路径访问,但我也直接在我的 DPR 文件中包含了 External.pas:

program Test;

uses
  External in '..\Packages\MyLib\External.pas',   <------ the 'external' file
  FormMain in 'FormMain.pas' {frmMain};
Run Code Online (Sandbox Code Playgroud)

对于这个项目,我将“输出目录”和“输出 DCU 目录”设置为“.\$(Platform)_$(Config)”。

当我编译时,这个项目的所有DCU的exe文件都写在正确的输出文件夹中:c:\Test\Win64_Debug\

但是,External.dcu 生成在 ..\Packages\MyLib\External.dcu
而不是 c:\Test\Win64_Debug\

这是为什么?


让我换个方式问这个问题:如果我将一个位于不同文件夹中的 PAS 文件附加到 DPR 项目中,那么所有 DCU 文件(包括外部文件)不应该与 EXE 文件在同一文件夹中生成吗?

Dav*_*nan 6

文档

输出目录

指定编译器应该放置可执行文件的位置。

单元输出目录

指定一个单独的目录来包含编译单元 (.dcu)。

听起来您需要指定单元输出目录以及输出目录。我个人倾向于将这两个目录分开。