我有一个项目(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};
对于这个项目,我设置了&#39;输出目录&#39;和&#39;输出DCU目录&#39;到&#34;。\ $(平台)_ $(配置)&#34;。
当我编译时,exe文件的所有DCU都写在正确的输出文件夹中:c:\ Test \ Win64_Debug \
但是,External.dcu是在.. \ Packages \ MyLib \ External.dcu中生成的 而不是c:\ Test \ Win64_Debug \
为什么?
让我以不同的方式提出问题:如果我在DPR项目中添加了一个位于不同文件夹中的PAS文件,则不应该在同一文件夹中生成所有DCU文件(包括外部文件)作为EXE文件?
答案 0 :(得分:4)
输出目录
指定编译器应放置可执行文件的位置。
单位输出目录
指定包含已编译单元(.dcu)的单独目录。
听起来您需要指定单位输出目录以及输出目录。我个人倾向于将这两个目录分开。
答案 1 :(得分:3)
是的,项目选项UI可能非常混乱,特别是因为要访问每个目标平台的设置,您需要通过下拉列表切换到该目标平台。
如果您可以一次性查看所有目标平台的配置,那么IDE的这一部分可以做得更好。
现在,如果您希望能够在一个位置(所有配置)上维护输出路径设置,则只需确保特定目标配置不会覆盖它。
要执行此操作,请转到特定目标配置,然后单击字段条目本身,而不是单击其前面的+
符号。
这将扩展当前属性字段,并显示可以从中继承此属性的父配置的值。
注意:虽然确实可以继承许多属性(目标配置中的属性值被添加到父方案中的属性,例如Output directory
和Unit output directory
,因为它们只能包含一个值,只是被覆盖。 / p>
因此,为了确保在每个特定目标配置中使用All configurations
的输出位置,它们都不应该为输出位置定义自定义值。
换句话说,当您展开特定属性时,来自Release configuration - ...
或Debug configuration - ...
的值必须为空,如上图所示。
答案 2 :(得分:2)
该死的......我再次这样做了......我为“所有配置 - 所有平台”设置了目标,但是“Debug config-64bit windows platform”的路径已经设置为其他内容。因此,当我在'所有配置'中设置(正确)路径时,'Debug config-64bit windows platform'保持不变。我有12种可能的配置(调试,发布,预发布),所以我没有看到'Debug config-64bit windows platform'仍然设置为原始值。项目选项的GUI可能会导致很多错误!
谢谢大卫。抱歉浪费你的时间。我仍然在努力使用Delphi路径。整个IDE中没有任何东西像路径(搜索,输出,库等)一样令人困惑/怪异