我想您知道您可以通过单击 D5..XE6 IDE 中的 Add File to Project 按钮将 .Pas 添加到项目中。您可以对 .Inc 文件进行同样的操作。然而 ...
当您对 .Pas 文件执行此操作时,您可以在项目管理器弹出窗口中看到它已经记录了它的路径,这足以让编译器能够找到它。但是,由于某种原因, .Inc 文件的情况并非如此。这显然是设计使然,因为这种差异至少早在 D5,IIRC 就已经存在。TBH,我不知道为什么,因为有好几次我看到如果编译器能够从项目经理显然知道其位置的 .Inc 文件中找到本可以避免的问题。所以,我无法回答你的“为什么?” 查询,尽管我敢说编译器设计者可以。
为了使编译器能够找到 .Inc 文件,您有两种选择来处理“如何”查询(除了移动 .Inc 文件,对于像 JCL/JVCL 这样大而复杂的东西可能是不是一个好主意):
- 在 {$I } 指令中包含 .Inc 文件的路径。在我的情况下,JCL 的东西位于 Jedi 文件夹下面的两个文件夹,该文件夹本身位于我的 D: 驱动器上的 Delphi 目录下面,所以我会将“{$I ...}”行写为
{$ID:\Delphi\Jedi\JCL\Source\Include\Jedi.Inc}
项目|选项\Delphi 编译器|搜索路径。这些方法中的第一个可能更可取,因为它只涉及 .Inc 文件,而第二个告诉编译器在该路径中查找它尚未找到的任何内容,这可能并不总是可取的。
至于您的“位置”点,正如您可能从其中一条评论中收集到的那样,JCL/JVCL 发行版中 Jedi.Inc 文件的位置似乎已经从过去移动到现在的位置,我认为这就是为什么你在 D5 下编译的东西遇到这个问题的原因。