【发布时间】:2015-10-18 15:25:34
【问题描述】:
我有一个项目 (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};
对于这个项目,我将“输出目录”和“输出 DCU 目录”设置为“.\$(Platform)_$(Config)”。
我编译的时候,这个项目所有DCU的exe文件都写在正确的输出文件夹:c:\Test\Win64_Debug\
但是,External.dcu 是在 ..\Packages\MyLib\External.dcu 中生成的
而不是 c:\Test\Win64_Debug\
这是为什么呢?
让我以不同的方式问这个问题:如果我在 DPR 项目中附加了一个位于不同文件夹中的 PAS 文件,那么所有 DCU 文件(包括外部文件)是否都应该在与EXE 文件?
【问题讨论】:
-
是不是因为你使用了绝对路径?
-
实际上,在我的项目中,我不使用绝对路径。我在这里显示绝对路径是为了简化示例。无论如何,我不明白为什么 Delphi 不接受绝对路径:)
-
请出示真实代码如何
-
到目前为止,我只为 Delphi32 编译,并让 Delphi 将 DCU 文件输出到与 PAS 文件相同的文件夹中。我工作了很多年。但现在我想编译为 64 位,所以我需要使用 $Platform $Config 'magic' 来分离 DCU。
-
DCU 文件放在 Unit Output Directory 中,而 EXE 放在 Output Directory 中。所以它们不一定在同一个文件夹中。
标签: delphi delphi-xe7 win64