gpt4 book ai didi

delphi - 如何在现代 Delphi 中组织共享单元?

转载 作者:行者123 更新时间:2023-12-03 15:02:21 25 4
gpt4 key购买 nike

十多年来,我一直(热爱地)使用 Delphi 6,并在逻辑(对我来说)单元结构中开发了数十万行代码,其中一个项目往往只有几百行代码引用我的“图书馆”中的高级工作例程。在尝试迁移到 XE5 时,我找不到一种方法将所有库单元编译到搜索路径上的一个位置,然后仅由项目使用(并在必要时重新编译),但 dcus 已关闭与库源一起,而不是与每个单独的项目一起。

我刚刚开始接受“hello world”在 XE5 中需要 2.5Mb,并且我无法忍受每个库单元必须在项目级别单独编译到 dcus 中的想法。在“旧”时代,这些单元 dcus 将位于 pas 文件旁边,如果源文件中没有任何更改,则不会重新编译。

最明显的地方是项目选项,但我找不到正确的设置来使项目停止保留每个 dcu 的副本。

我隐约意识到多平台开发会带来重组,但又不禁感觉到有某种妥协的立场。

我一定错过了一些大事。

最佳答案

从 Delphi XE2 开始,Delphi 支持多个平台的编译以及不同的构建配置。因此,Delphi 需要为每个组合创建 DCU 文件。例如,Win32Win64OS-X DCU 文件默认保存在单独的文件夹中。否则,如果不是这样,DCU 文件将相互覆盖,您应该避免这种情况(如果您使用不同的配置/平台)。

可以通过修改单元输出目录在第一部分Delphi Compiler的项目选项中更改这些设置。默认情况下为 .\$(Platform)\$(Config),它为平台创建一个子文件夹,然后为配置创建另一个子文件夹,例如 \Win32\Debug\。请注意最顶部的Target,默认情况下设置为您当前的平台/配置。您通常需要首先将其更改为所有配置。如果您从选项中完全清除此字段,它将产生旧版本的默认行为。

听起来您应该创建一个 Package 。这将允许您将所有“库”单元集中到一个地方 (BPL)。然后可以将该包安装到您的 IDE 中,如果您有任何组件,则可以将这些组件安装到您的组件托盘中。

或者您也可以不使用软件包。不过,所有这些不同项目的所有单元都应该移动到这个中心位置 - 一个包含所有“库”单元的文件夹。这样可以减少维护工作,您只需将该文件夹添加到全局库路径即可。

如果您将文件放在中央文件夹中,并使用项目中的这些文件,则该项目和此“库”的 DCU 文件都会为该项目保存。 Delphi 不知道这些文件是一个“库”,它只知道您正在使用它们,并且由于它找不到这些单元的已编译版本,因此它会在您的项目中创建一个。如果您希望 DCU 文件仅保存一次并保存在这个中心位置,那么您将需要一个包。

关于delphi - 如何在现代 Delphi 中组织共享单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455327/

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