【问题标题】:Delphi 2007 project library pathDelphi 2007项目库路径
【发布时间】:2016-05-13 11:57:41
【问题描述】:

我有一个 Delphi 2007 项目,它使用多个非可视库(例如 OmniXML、Synapse、来自 TntUnicode 的一些类)作为源代码(.pas 文件)分发。

我可以在 IDE 中将它们的路径添加到 Tools -> Options -> Environment -> Delphi -> Library Win32 -> Library path,但这看起来不是一个好方法,因为这些路径需要在每台计算机上设置,并且所有项目都必须使用相同的库版本。

有没有办法将它们添加到项目中?据我了解,在 Project Options How can I add a library path to a delphi project? 中的较新 Delphi 版本中是可能的,但在 2007 年我没有看到这样的选项。

我在目录/条件中只找到了搜索路径,但它对于发布/调试配置是分开的,我不知道除了${BDS} 之外还有哪些宏在这里工作。此外,我不确定它是否用于此类用途。也许有更好的选择?

【问题讨论】:

  • 我将所有 .dcu 文件放在本地树中,并将它们的相对路径添加到项目搜索路径中。如果您有调试 .dcu,也可以将它们添加到本地树中。
  • 是的,谢谢,看起来像“libs\mylib\source”这样的相对路径可以正常工作。

标签: delphi delphi-7 delphi-2007


【解决方案1】:

我更喜欢在工具选项中没有额外的库路径,在每个 Delphi 版本中,并且让每个项目都有自己的搜索路径。

  1. 我希望我的设置存在并且对于所有构建配置都相同。为此,我确保使用根节点。不幸的是,这在 Delphi 2007 中并不那么简单,因为您有 Build = Debug 设置和 Build = Release 设置,如果我没记错的话,Delphi 2007 中没有 ROOT 节点。

  2. 对您而言,在 Delphi 2007 中,您可能需要特别注意手动保持调试和发布分支中的值相同,因为我相信您无法在 Delphi 2007 中自动执行此操作。

  3. 要回答您的问题,不需要完整路径,通常也不需要使用$(PROJECTDIR)。也不需要完整的路径。您需要使用相对路径,例如:..\Lib\Dir1;..\Lib\Dir2;..\Lib\Dir3 等等。我使用相对路径的目标是满足检查代码并在任何地方构建它的愿望。只能在签出到某个目录 (C:\YOURAPP) 时才能构建的代码是草率的,我敢说彻头彻尾的懒惰,以及不切实际,而且非常普遍,以至于您可能认为这是最佳实践。这种草率的代码库会妨碍正确的持续集成实践,防止在不同的分支或主要版本中拥有多个工作副本,等等,并且通常通过将所有代码几乎不构建在某种虚拟机中来解决。甚至没有人知道如何设置他们的代码,所以他们把代码塞进了虚拟机,任由烂摊子烂掉。

  4. 当你绝对不能使用相对路径时,例如当你不知道其他东西在哪里时,你应该在房子根文件夹变量中设置你的 OWN,如果你的公司被称为 ACME,我会称之为ACMEROOT,我会自己设置。在我现在的公司,我们有这样一个根变量,我们称之为 PS,因为我们产品的首字母大写是 P 和 S。然后我们使用 $(PS),类似于您在库路径中看到的 $(BDS)

  5. 有时我发现有一个我编写的外部工具很有用,它可以为我设置环境变量,直接将我想要的环境变量写入 IDE,我有一个检查的习惯来自版本控制的代码并运行此工具来设置我的环境。碰巧的是,我现在可以将代码检查到新计算机上并运行它,而无需任何手动设置包、安装组件、配置库路径或项目,一切都只是构建。遗憾的是,IDE 并未提供您进行此类练习所需的一切,但有多种第三方工具可以为您提供可移植的、易于构建的代码库。

【讨论】:

  • 是的,相对路径正是我想要的,我只是不确定Delphi如何解析搜索路径中的相对路径,并认为我需要${ProjectDir}之类的东西(在构建过程中自动设置为项目路径,就像在 Visual Studio 中一样)以确保它始终有效。
  • 即使在 Visual Studio 中,您也应该使用相对路径,除非您觉得这样做会让人感到困惑。
【解决方案2】:

是的。打开德尔福。转到项目经理。右键单击并选择选项。 从树中选择 Resource Compiler,然后选择 Directories and Conditionals。

您可以在此处定义项目的搜索路径。不要担心 $(Links)。只需使用真实路径。当然,每台计算机都需要进行相同的配置,但无论如何都是如此。

【讨论】:

  • 你确定你说的是 D2007 吗?没有“资源编译器”。无论如何,我已经找到了搜索路径,请参见上面的屏幕截图。但我认为项目目录应该存在一些宏,以避免使用完整路径。
  • 资源编译器的搜索路径与库路径无关。
  • 这不仅与库路径无关,而且在Delphi 2007中也不存在,这是专门标记此问题的IDE版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多