Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Delphi不将DCU文件输出到正确的文件夹中?_Delphi_Delphi Xe7_Win64 - Fatal编程技术网

为什么Delphi不将DCU文件输出到正确的文件夹中?

为什么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

我有一个项目(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' {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\$(平台)\$(配置)\