使用 Indy 的项目在升级到 10.2 Tokyo 后无法编译
Projects using Indy don't compile after upgrade to 10.2 Tokyo
卸载 Delphi 10 Seattle 后,删除所有包含 'Embarcadero' 的目录,然后安装 Delphi 10.2 Tokyo,我使用 Indy 的项目不再编译:
Could not compile used unit 'IdSSLOpenSSLHeaders'
- 项目的搜索路径没有任何变化(这些仅与项目相关)
Tools/Delphi Options/Library/Browsing path
包含$(BDS)\source\Indy10\Protocol
(以及Core和System),而IdSSLOpenSSLHeaders.pas
是在 c:\Program Files (x86)\Embarcadero\Studio.0\source\Indy10\Protocols\
- 将
IdSSLOpenSSLHeaders
添加到 uses 子句没有帮助(因为我使用了设计时组件,所以自动添加了其他 12 个 Indy 文件名)
- 表单上有一个 TIdSSLIOHandlerSocketOpenSSL 组件
Tools/Delphi Options/Library/Library Path
中没有任何与 Indy 相关的内容
IdSSLOpenSSLHeaders.dcu
等在c:\Program Files (x86)\Embarcadero\Studio.0\lib\win32\release\
文件夹
- 编辑器在 Uses 子句中的
IdSSLOpenSSL
下显示红色波纹,提示 'Cannot resolve unit name'
- 磁盘上意想不到的地方没有旧的 id*.dcu 文件
我发现了两个我都不是特别满意的解决方法:
Indy 文件不是项目的一部分;显式地将 IdSSLOpenSSLHeaders.pas 添加到项目中使其再次编译,但我对此并不满意:IdSSLOpenSSLHeaders.pas
现在在该源目录中编译,在那里留下一个 .dcu 文件。
此外,所有其他 Indy 文件 不是 项目的一部分。
正在将 IdSSLOpenSSLHeaders.pas
和 IdCompilerDefines.inc
复制到我的项目目录
是否有我忽略的更好的解决方案?
我正在尝试创建一个小项目来重现该问题,但到目前为止编译成功了吗???
找到了。
涉及两个项目,有一些共同的文件。无论我尝试构建两者中的哪一个,我都收到了错误。
解决方案是删除两个项目本地的所有 .dcu 文件。
别问我为什么,但似乎有一些(顺序?)* 依赖关系,构建任何一个都无法解决。
在此之后,我构建的顺序无关紧要。
注意:我正在考虑删除我的问题,因为这是一个非常奇怪且无法重现的问题(我逐渐复杂化的测试程序一直编译没有错误)。
相反,我决定自我回答;谁知道这对将来的人有帮助。
* 在尝试时,我什至尝试更改 Uses 语句中文件名的顺序,但这没有帮助。
卸载 Delphi 10 Seattle 后,删除所有包含 'Embarcadero' 的目录,然后安装 Delphi 10.2 Tokyo,我使用 Indy 的项目不再编译:
Could not compile used unit 'IdSSLOpenSSLHeaders'
- 项目的搜索路径没有任何变化(这些仅与项目相关)
Tools/Delphi Options/Library/Browsing path
包含$(BDS)\source\Indy10\Protocol
(以及Core和System),而IdSSLOpenSSLHeaders.pas
是在c:\Program Files (x86)\Embarcadero\Studio.0\source\Indy10\Protocols\
- 将
IdSSLOpenSSLHeaders
添加到 uses 子句没有帮助(因为我使用了设计时组件,所以自动添加了其他 12 个 Indy 文件名) - 表单上有一个 TIdSSLIOHandlerSocketOpenSSL 组件
Tools/Delphi Options/Library/Library Path
中没有任何与 Indy 相关的内容
IdSSLOpenSSLHeaders.dcu
等在c:\Program Files (x86)\Embarcadero\Studio.0\lib\win32\release\
文件夹- 编辑器在 Uses 子句中的
IdSSLOpenSSL
下显示红色波纹,提示 'Cannot resolve unit name' - 磁盘上意想不到的地方没有旧的 id*.dcu 文件
我发现了两个我都不是特别满意的解决方法:
Indy 文件不是项目的一部分;显式地将 IdSSLOpenSSLHeaders.pas 添加到项目中使其再次编译,但我对此并不满意:
IdSSLOpenSSLHeaders.pas
现在在该源目录中编译,在那里留下一个 .dcu 文件。
此外,所有其他 Indy 文件 不是 项目的一部分。正在将
IdSSLOpenSSLHeaders.pas
和IdCompilerDefines.inc
复制到我的项目目录
是否有我忽略的更好的解决方案?
我正在尝试创建一个小项目来重现该问题,但到目前为止编译成功了吗???
找到了。
涉及两个项目,有一些共同的文件。无论我尝试构建两者中的哪一个,我都收到了错误。
解决方案是删除两个项目本地的所有 .dcu 文件。
别问我为什么,但似乎有一些(顺序?)* 依赖关系,构建任何一个都无法解决。
在此之后,我构建的顺序无关紧要。
注意:我正在考虑删除我的问题,因为这是一个非常奇怪且无法重现的问题(我逐渐复杂化的测试程序一直编译没有错误)。
相反,我决定自我回答;谁知道这对将来的人有帮助。
* 在尝试时,我什至尝试更改 Uses 语句中文件名的顺序,但这没有帮助。