【问题标题】:Delphi Library Path - what should really be going in there?Delphi Library Path - 真正应该在那里做什么?
【发布时间】:2010-10-03 01:23:22
【问题描述】:

我一直将我们包的单元 (.pas) 文件夹的路径放入 Delphi 库路径,但我开始怀疑这是不是一个错误! 解决这个问题例如:

我有两个自制的包:

  • 低级包
  • 高级包

HighLevelPackage 使用 LowLevelPackage 中包含的单位。

如果两个包的单元文件夹的路径都在库路径中,那么我有可能在 LowLevelPackage 和 HighLevelPackage 隐含包含 LowLevelPackage 的单元之前构建 HighLevelPackage(我认为?)。

我想知道是否应该将这些包的 DCU 的路径放入库路径中。并且可能将实际源单元的路径放在浏览路径中,以便我们在调试时仍然可以进入它们。

听起来对吗?真正应该进入图书馆路径的是什么? .DCU 的路径? .DCP? .BPL?还是 .PAS?

【问题讨论】:

    标签: delphi ide packages


    【解决方案1】:

    我通常根本不会将任何包源放入库路径中。这是因为项目使用的所有 3rd 方库都进入项目的子目录 (svn:external),因此将它们放在库路径中会导致将错误的源添加到项目中。相反,我将相对路径添加到项目的搜索路径中。

    【讨论】:

      【解决方案2】:

      嗯,我刚刚看了 Delphi Help 中关于库路径的文字:

      库路径 指定编译器所在的搜索路径 可以找到源文件 包裹。编译器只能找到 库中列出的那些文件 小路。如果你尝试构建你的包 文件不在库路径上, 您将收到编译器错误。

      我不确定我是否同意这一点,因为这意味着每个包都可以看到每个其他包的源单元,所以如果一个包使用另一个包单元并且你构建它们的顺序不正确,我相信依赖关系可能会搞砸。哦,好吧,我是谁来质疑德尔福帮助,大声笑。 ;)

      【讨论】:

      • 没错,现在,我想你明白我的答案了。
      【解决方案3】:

      +1 给 Cesar,虽然我不知道“浏览路径”选项......我很确定它在 D7 中不存在。这肯定会省去将 PAS 文件添加到库路径以单步执行代码的麻烦。

      【讨论】:

      • 是的,Delphi 7 中有一个浏览路径。是的,这是个好东西。
      • @moobaa:这是答案还是评论?
      • 使用Delphi 5,浏览路径有!
      【解决方案4】:
      Library Path: *.dcu, *.inc, *.dfm
      Package Output: *.bpl
      Dcp Output: *.dcp
      Browsing Path: *.pas
      

      【讨论】:

      • 真的吗?为什么 *.dfm 文件会进入库路径,而 .pas 文件不会?这对我来说没有任何意义。 Pas 文件和 dfm 文件同时存在。
      • 另一件事:.inc 文件通常也与 pas 文件位于同一文件夹中,因为 pas 文件通常使用它们。我看不出为什么 inc 文件应该进入库路径。你认为你可以为你的答案添加一些推理吗?
      • 在编译应用程序时,链接器会使用 .dfm 和 .inc 文件。如果将 .pas 文件放在 Library Path 中,则每次都会重新编译 pas。使用这种方式,你的编译时间会很短。
      • dfm 文件必须可由编译器访问。并且编译器只查看库路径。 (这里的主要问题是IDE不允许你为资源文件指定不同的路径,命令行编译器有一个-R选项)
      • @Cesar:如果我像你说的那样分隔文件,如果我对属于另一个包(不是我当前项目的一部分)的某个 .pas 文件进行更改会发生什么?每次我需要在重新编译当前项目之前更改这样的 .pas 文件时,我是否必须打开该包并进行编译?
      猜你喜欢
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      相关资源
      最近更新 更多