【问题标题】:Delphi Search path vs Library Path vs Browsing PathDelphi 搜索路径 vs 库路径 vs 浏览路径
【发布时间】:2009-05-01 16:11:00
【问题描述】:

在 Delphi 中,我可以通过将文件夹的源代码添加到项目搜索路径或将其添加到库路径来包含文件夹的源代码。搜索路径仅适用于当前项目,而库路径适用于使用 IDE 打开的任何项目。

除此之外,搜索路径和库路径之间是否有任何功能差异?

我问的原因:我有一个文件夹 X,其中包含项目 A 使用的源。当我将该文件夹包含在项目 A 的搜索路径下时,它说它在该文件夹中找不到特定文件。当我将它包含在库路径下时,项目 A 可以正常编译。

直到现在,我一直认为唯一的区别是一个是特定于项目的,另一个是全球性的。

当我们谈到这个话题时(并且冒着自欺欺人的风险):“库路径”和“浏览路径”之间的功能区别是什么?

【问题讨论】:

  • 您说“当我将该文件夹包含在项目 A 的搜索路径下时,它说它无法在该文件夹中找到特定文件。”这确实是这里指出的问题:它应该找到它。您是否检查过使用您的文件夹设置的搜索路径是否符合您当前的目标平台和构建配置?

标签: delphi


【解决方案1】:

据我所知,浏览路径是调试器在中断/单步执行不在库路径中的源文件时查找文件的位置。

假设您使用了一个第三方组件。您将库路径指向该组件的预编译 dcu 文件所在的目录。您的项目将在编译时使用这些 dcu 文件。这很好,因为每次构建时都不会重新编译。

但是通过包含已编译的 dcu 文件,您失去了调试第三方组件的可能性。如果您在浏览路径中包含源文件所在的路径,调试器将找到源,并允许您单步执行。

vcl 的默认设置显示了这一点。他们在库路径中放置了 $(BSD)\Lib,在浏览路径中放置了 $(BDS)\SOURCE\WIN32...

更新:有两种不同的搜索路径:编译器搜索路径和调试器搜索路径。第一个是编译器在编译过程中查找文件,第二个是调试器在调试过程中查找源文件。

编译器只会在库路径或项目搜索路径中查找文件。 调试器将在编译器搜索路径加上浏览路径、项目的调试源路径和全局调试搜索路径中找到标识符。

在全局或公关项目中指定事物应该没有任何区别。

【讨论】:

  • 这也是我的理解,这是有道理的。但这意味着实际上,所有 3 个都是相同的……这只是组织问题。这与我对这个问题的经验不符。
  • 不,不一样。如果你在浏览路径中包含你的路径,它需要编译。
【解决方案2】:

调试器还会在库路径中查找文件。

【讨论】:

    猜你喜欢
    • 2017-07-11
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多