【发布时间】:2017-01-25 10:55:10
【问题描述】:
我一直致力于将一个巨大的项目分解成小部分,为每个部分创建一个包 (dpk),并将应用程序配置为“使用运行时包”。我在链接其中一个使用其他包的包时遇到问题。链接时间太长了。
我的印象是,当一个包 (A) 需要另一个包 (B) 时,该依赖关系仅在运行时解决,但显然并非完全如此,因为如果从“需要”中删除 (B) (A)、(A) 部分的链接在正常时间内完成,否则需要 30 分钟或更长时间。
所以我的问题是,当 Delphi 链接一个需要另一个包的包时究竟会发生什么?
【问题讨论】:
-
除非你想使用可选的插件模块,否则使用运行时包几乎肯定会让你的生活变得更加艰难。
-
我们使用 XE3,现在我们几乎无法构建项目。通常情况下,IDE 会崩溃或发出“内存不足”错误。很久以前我们决定将项目分成几个部分,我们称之为“commonfeature.*”,但不是使用 dpks,每个部分实际上是一个 exe,将 dcus 吐到一个我们命名为“_codelink”的公共文件夹中,从这一点开始在任何需要“commonfeature”中的东西的项目上,只需使用“_codelink”中的 dcu。这种方法的问题在于,我们最初认为问题在于编译部分,但事实证明,问题在于链接部分。
-
是的,这是一个公平的打击。大约是我正在使用的 5 倍。我可以看到编译器可能会遇到困难。也许我没有合适的经验给你建议。
-
我肯定会考虑在一个 exe 和一组 DLL 中分解应用程序,每个 DLL 都有一个特定的任务/目的,可选的 COM/ActiveX 用于接口/加载/描述对象。
-
也许 IDE Fix Pack (andy.jgknet.de/blog/ide-tools/ide-fix-pack) 可能会对您有所帮助。我记得过去从 Andy 的网站上获得了一些有助于加快编译和/或链接的内容。
标签: delphi linker packages delphi-xe3 delphi-10.1-berlin