为什么Delphi不将DCU文件输出到正确的文件夹中?
我有一个项目(C:\Test\Test.dpr),它使用一个属于库(MyLib.DPK)的文件(External.pas)。库中的所有文件都可以通过“搜索”路径访问,但我还将External.pas直接包含在我的DPR文件中:为什么Delphi不将DCU文件输出到正确的文件夹中?,delphi,delphi-xe7,win64,Delphi,Delphi Xe7,Win64,我有一个项目(C:\Test\Test.dpr),它使用一个属于库(MyLib.DPK)的文件(External.pas)。库中的所有文件都可以通过“搜索”路径访问,但我还将External.pas直接包含在我的DPR文件中: program Test; uses External in '..\Packages\MyLib\External.pas', <------ the 'external' file FormMain in 'FormMain.pas' {frmMa
program Test;
uses
External in '..\Packages\MyLib\External.pas', <------ the 'external' file
FormMain in 'FormMain.pas' {frmMain};
程序测试;
使用
外部在“..\Packages\MyLib\External.pas”中,该死的。。。我又做了一次。。。我为“所有配置-所有平台”设置了目标,但“调试配置-64位windows平台”的路径已设置为其他路径。因此,当我在“所有配置”中设置(正确)路径时,“调试配置-64位windows平台”保持原样。我有12种可能的配置(debug、release、pre-release),所以我没有看到“debug config-64位windows平台”仍然设置为原始值。项目选项的GUI可能会导致很多错误
谢谢你,大卫。对不起,浪费了你的时间。我仍在与Delphi路径进行斗争。整个IDE中没有什么比以下路径(搜索、输出、库等)更令人困惑/奇怪的了
输出目录
指定编译器应将可执行文件放在何处
单元输出目录
指定包含已编译单元(.dcu)的单独目录
听起来您需要指定单元输出目录以及输出目录。我个人倾向于将这两个目录分开 是的,项目选项UI可能非常混乱,特别是因为为了访问每个目标平台的设置,您需要通过下拉列表切换到该目标平台
如果您可以一次看到所有目标平台的配置,IDE的这一部分可能会变得更好
现在,如果您希望能够在一个位置(所有配置)上维护输出路径设置,您只需要确保特定的目标配置不会覆盖它
要执行此操作,请转到特定的目标配置,然后不要单击字段条目本身,而是单击它前面的+
符号
这将展开“当前属性”字段,并显示可从中继承此属性的父配置中的值
注意:虽然确实可以继承许多属性(目标配置中的属性值添加到父方案中的属性中,如)输出目录
和单元输出目录
,因为它们只能包含一个值,所以只需重写即可
因此,为了确保在每个特定目标配置中使用所有配置的输出位置
,所有配置都不应该为输出位置定义自定义值
换句话说,当您展开特定属性时,Release configuration-…
或Debug configuration-…
中的值必须为空,如上图所示。是因为您使用绝对路径吗?实际上,在我的项目中,我不使用绝对路径。为了简化示例,我在这里显示了绝对路径。无论如何,我不明白Delphi为什么不接受绝对路径:)请显示真实代码,直到现在我只为Delphi32编译,我让Delphi将DCU文件输出到与PAS文件相同的文件夹中。多年来我工作得很卖力。但是现在我想编译64位,所以我需要使用$Platform$Config'magic'来分离DCU。DCU文件放在单元输出目录中,而EXE放在输出目录中。因此,它们不一定在同一个文件夹中。我想IDE正在尽力完成一项棘手的工作,支持多个构建目标。你研究过选项集吗?我想他们可能会对这样的事情有所帮助,但就我个人而言,并没有走多远。我不认为选项集在这种情况下真的有用。它们很有用,只是不在这里。通过支持继承,Delphi在这方面比VS做得好得多。是的,很复杂。但是一旦你做对了,它将非常强大和灵活。你也可以通过在*.dproj
文件中添加以下内容来实现这一点:。\lib\$(平台)\$(配置)\