Delphi - 定位编译器无法在其默认路径中搜索的单元的路径

时间:2014-08-20 11:13:36

标签: delphi delphi-xe4 search-path

我已经下载了一个包含许多软件包的组件,然后我安装了所有的设计时软件包并生成了所有其他的dcu文件。每次创建新的应用程序时,我都必须在Delphi搜索路径中分配它的路径。有没有办法将其路径分配给Delphi编译器搜索路径一次,所有应用程序都可以访问这些单元,这样我就不需要每次都为每个新应用程序设置路径。

2 个答案:

答案 0 :(得分:4)

如果您想为每个新项目自动提供一些组件,您需要更改默认的Delphi IDE选项 - 特别是路径位置 - 以便Delphi IDE知道在哪里可以找到所需的文件。

您可以通过进入菜单工具 - >来完成此操作。选项。然后在TreeView中,用于将选项拆分为多个类别,您可以选择环境选项 - > Delphi选项 - >库。

在窗口的右侧,您将拥有关于库和源文件的路径位置的不同选项。

为了让Delphi找到组件所需的预编译单元,您需要将它们所在的文件夹添加到Library路径。

为了让Delphi找到您组件的源文件,您需要将它们所在的文件夹添加到浏览路径。

您可以在Delphi文档中阅读有关这些设置的更多信息,该文档也可在此处在线获取: http://docwiki.embarcadero.com/RADStudio/XE6/en/Library

请注意,如果您不拥有Delphi XE6,但之前的XE版本之一只是通过替换" XE6"来更改网页URL。和你拥有的人一起。

编辑:我编辑了我的答案以提供更具体的信息。下面的老帖子:

如果你有工具 - >选项(或者是最新版本中的环境选项)您可以设置Delphi IDE的默认选项。这些选项还包括默认路径设置,这些设置将自动用于所有新项目。

答案 1 :(得分:0)

我这样做的方法是拥有一个文件夹" Lib2"每当我编译/安装组件时,我用它作为单元输出目录 - 我让组件(我的意思是他们的源文件等)随时安装。

(我称之为" Lib2"因为传统上Delphi将自己的DCU放在一个名为" Lib"的文件夹中,并将所有第三方的DCU放在一个独立的文件夹中如果我的设置陷入混乱,我们就不必重新安装Delphi。)

如果这样做,您需要为新项目做的只是在项目搜索路径中包含该文件夹的路径,并将其设置为默认搜索路径。

这样做的方式因德尔福版本而异 - 在D7时代,这只是一个勾选"默认" Project |的Directories / Conditionals选项卡上的复选框选项。唯一的小问题是有时组件需要资源文件;如果编译器抱怨这一点,只需手动将其复制到那里。

在XE4中,有几种方法可以让Delphi找到你发送给Lib2的编译过的DCU或你想要的任何东西:

  • 最简单的似乎是做其他答案所暗示的,即将Lib2路径添加到Tools |下的Library路径列表中。选项。然后编译器将使用它在那里找到的DCU,而不需要能够找到它们的源,这通常是一件好事(参见" btw"以下部分)。

  • 第二种方法是创建一个项目" Option Set" (有关它们是什么以及如何创建它们的详细信息,请参阅OLH,然后对其进行编辑(再次参见OLH)以将Lib2包含在搜索路径列表中。之后,您可以将该选项集应用于任何项目可能是一种自动将您的选项集应用于新项目的方法,但我还没有设法找到它。无论如何......

  • 第三种方法是在其Delphi存储库的搜索路径中添加一个具有Lib2的项目,然后创建要在存储库中使用此条目的Lib2内容的新项目。

不过,有一个重要的实际观点是让第三方库和任何你自己的标准库将他们的DCU输出到你的Lib2或同等产品。因为编译器可以在那里找到已编译的DCU,所以它不必能够找到这些库的源代码以便能够编译您的项目。以这种方式隔离已编译的DCU有助于避免可怕的单元x使用不同版本的y"错误信息(通常是一个bpl)多年来一直是德尔福新闻组如此多呼救的原因。