在安装第三方库时,我遇到了以下令人费解的情况,在本例中为Virtual Treeview,我将在本文中将其用作示例。
遵循INSTALL.txt的安装过程后,新组件出现在Delphi的组件面板中,并且可以添加到表单中。
然而,构建一个提供的示例项目,在本例中是"Minimal“失败,如下所示:
‘无法在第xxx行解析单元名称" VirtualTrees“,这是列出VirtualTrees的uses语句。
与此症状一致的是,在源代码编辑器中,(使用) VirtualTrees和辅助组件声明被标记为红色曲折,表示标识符未声明或未解析。
提供的演示项目设置为以Windows32为目标。但令人费解的是,如果我将目标切换到Windows64,它将会编译。
安装包括:
是什么让IDE知道该组件,但在Windows32下编译失败,但在Windows64上却成功了?
发布于 2019-04-18 16:48:49
每个目标都有自己的库路径。您已经将VT路径添加到Win64目标,但需要对Win32目标执行相同的操作。
或者,从Win64目标搜索路径中删除VT路径,并将它们添加到适用于所有项目的目标中,然后它们将被其他项目继承。
在选项对话框中有一个下拉控件,允许您指定要将设置应用到的目标。
发布于 2019-04-22 07:34:09
简而言之,库路径设置不正确。感谢大卫·赫弗南指出了这一点。
但是如何和为什么呢?
我遗漏的关键部分是,库设置对话框捕获了适用于每个不同平台目标的不同路径集。因此,在Library Settings对话框的顶部有一个"Selected Platform“下拉列表,它控制下面的设置将应用于哪个平台。
为了能够构建Win 32 VCL应用程序,需要专门为Windows 32设置库路径,这意味着在执行将路径添加到Virtual TreeView的源目录的步骤之前,将所选平台下拉菜单设置为Windows 32。
回想起来很明显,也许这篇文章将有助于将“无法解析单位名称”与这一潜在原因联系起来。
关于为什么会发生这种情况,有几个问题需要补充。
a)来自旧版本Delphi的用户可能在处理多个平台之前熟悉此库设置对话框,因此没有意识到它现在具有“选定平台”功能。
b)在我安装的全新的Delphi 10.3上,每次打开Library Settings对话框时,"Selected Platform“下拉列表都会恢复到Windows 64。它既不与当前打开的项目的平台协调,也不记得您上次设置它是什么。所以很容易忽略它没有设置到您假设的平台,除非您知道要显式查看。
尽管此功能为整个Delphi安装设置库路径(“全局”),但在项目级别存在重叠设置,如下所示(对于示例"Minimal“项目),了解这一点可能也很有用:
项目树,ProjectGroup1 > Minimal.exe >构建配置>右键单击>(项目选项对话框)构建> Delphi编译器>目标(所有配置或特定目标)>“搜索路径”栏。
显然,Delphi将“搜索路径”与工具> ... >库设置>库路径合并在一起。
最后,对于Virtual Treeview,它的维护者Joachim Marder在安装指令中添加了一个注释,以避免这里描述的陷阱。
https://stackoverflow.com/questions/55741919
复制相似问题