Delphi 12编译报错:无法编译使用的单元'IdUri'如何解决?
检查项目搜索路径配置
对比能正常编译的项目,确认当前项目的搜索路径是否完整包含Indy的源码根路径C:\Program Files (x86)\Embarcadero\Studio\23.0\source\Indy10(仅添加Protocols子目录会导致依赖单元找不到)。操作路径:Project > Options > Delphi Compiler > Search Path,添加上述路径并核对拼写。重新编译Indy核心包
带锁标签说明单元未正确编译或.dcu文件损坏。手动编译Indy包:打开Delphi后加载C:\Program Files (x86)\Embarcadero\Studio\23.0\source\Indy10\Core\IndyCore.groupproj,先编译Core包,再编译Protocols包(IndyProtocols.groupproj),确保编译无报错。核对目标平台与编译配置
确认当前项目的目标平台(Win32/Win64)和编译配置(Debug/Release)与正常项目一致。不同平台、配置的.dcu文件存储路径独立,不匹配会导致找不到编译单元。清理项目缓存文件
删除项目目录下的.dproj.local文件,以及Win32/Win64子目录内的所有.dcu文件,之后重新编译项目,让Delphi重新生成依赖的编译文件。解决系统目录权限问题
C:\Program Files (x86)\属于系统保护目录,Delphi可能无写入权限生成.dcu文件。可右键Delphi图标选择「以管理员身份运行」后重新编译;或把Indy源码复制到非系统保护目录(如D:\DelphiLibs\Indy10),并更新项目搜索路径到新目录。
内容的提问来源于stack exchange,提问作者delphirules




