gpt4 book ai didi

delphi - "Library path"应该指向包的源文件吗?

转载 作者:行者123 更新时间:2023-12-03 14:43:07 31 4
gpt4 key购买 nike

“库路径”应该指向包的源文件吗?Delphi 7 文档说是的。但其他人说不:““库”路径应该仅指向编译文件(.dcp、.dcu)和(如果需要)资源文件(.res、.dfm)”。

更新:
问题是,如果您不在“库路径”中添加包的路径,那么每次创建新的 DPR 项目时,您都必须手动收集包的路径(很多)并将它们输入到项目的路径中。选项“浏览”框,否则您将得到“文件 xxx.dcu 未找到”。这听起来不太好。多年来,我习惯在库中添加所有路径,并且每次创建新项目时都无需手动添加路径。

  • 我的包是通用/全局的(不是特定于单个项目,而是特定于许多项目)。
  • 我使用一台计算机进行编程,因此我不关心共享代码。
  • 我的 PAS 和 DCU 文件位于同一文件夹中。
  • 我不介意经常重新编译 PAS 文件。编译需要 1-2 秒,构建需要 3-4 秒。
  • 相对路径是没有问题的,因为“Delphi(所有版本)有时在打开文件时似乎会更改工作目录,这反过来又会弄乱相对路径(它们是相对于工作目录,而不是 .dpr(oj)显然)。如果我注意到这一点,我会在工作目录中打开一个文件(使用文件->打开),一切都会恢复正常。”
  • 我过去常常在一天内多次编辑大多数软件包。
<小时/>

Delphi 7 在设置路径时真是一团糟,官方文档是 0。:(

更新:
我已经做了改变。它有效,但它甚至还不是完美的(或者至少是优雅的):How to remove duplicate resources (RES, DFM) while using Delphi with non specific Library paths?

最佳答案

库路径的指向位置并不比编译文件(dcu/dcp 文件和 exe/bpl 文件)的输出路径指向的位置重要。

每个项目都应该有自己的输出路径。如果这样做,那么即使您将库路径指向源文件,二进制文件也将位于项目特定的文件夹中,因此永远不会干扰其他项目。

请小心使用全局(环境选项)库路径。我的实际上完全是空的。甚至像 $(BDS)\Lib 这样的标准 Delphi 文件夹也不在其中。为什么?因为它确保每个项目都需要在 dproj 中明确其对库的依赖关系。这意味着您可以加载和构建需要同一库的不同版本的项目,而不会出现错误,因为您的环境路径指向的库版本与项目所需的版本不同。这在调试时也有很大帮助,因为调试器将始终使用项目所说的它需要的版本,而不是全局环境路径恰好指向的版本。

如果您的任何库具有可视组件,您仍然不需要在全局环境路径上使用它们。您只需确保 IDE 使用您最常使用的版本中的 bpl。它是否是旧的确实并不重要(除了它可能会导致 dfm 的内容发生更改这一事实之外,但源版本控制应该对此有所帮助)。您只需要 IDE 中的 bpl,这样当您加载表单时它就不会向您吐槽。事实上,我的 IDE 通常没有安装任何第三方组件(即使项目使用它们),但是我不会做太多 dfm 工作,当我需要更改表单 pas 文件中的代码时,我只是告诉 IDE忽略所有错误(但保留引用!在表单的单元中)并在提交时恢复对 dfm 的任何更改。

哦,还有我总是从源代码编译。这样,如果我获得库中单个文件的补丁,我就不必经历整个安装过程,甚至不必重新编译组件包。我可以简单地将更新的源文件放入正确的文件夹中,然后像什么都没发生一样继续。

此外,我确实在所有项目中使用相对路径。我知道有些人遭受过这样的痛苦,但我从未遇到过问题。可能是因为我从来没有通过在 Windows 资源管理器中双击来打开任何文件,而是总是在 IDE 中打开任何文件,或者可能通过从资源管理器中拖放来查看文件(以前的版本),而不使其成为项目的一部分。相对路径使得加载和加载更容易制作项目副本,拥有任意数量的工作区 (Perforce),并在它们之间切换,而无需“修复”dpr 中的路径。

以上所有都是我在处理许多不同项目时所采取的做法,经常需要在我们自己的代码版本之间来回更改,这通常还涉及库版本之间的切换。

关于delphi - "Library path"应该指向包的源文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666292/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com