RAD Studio XE编译报错:未解析TIdSMTP析构函数,求Indy安装方法
解决RAD Studio XE中TIdSMTP链接器未解析外部符号问题
出现[Linker Error] Unresolved external '__fastcall Idsmtp::TIdSMTP::~TIdSMTP()'错误,说明Indy组件的库文件未正确链接到项目中,以下是具体解决步骤:
1. 确认IDE中Indy组件状态
RAD Studio XE默认集成了Indy 10,先查看组件面板是否存在Indy Clients、Indy Servers分类。如果找不到,说明组件包未安装;如果存在但编译报错,大概率是组件包未正确编译。
2. 重新编译安装Indy组件包
- 打开RAD Studio XE,点击
File > Open > Project,导航到路径:C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\Lib\CBuilder - 先打开
dclIndyCoreXE.cbproj,右键项目选择Build,编译完成后点击Install,等待IDE提示组件安装成功后,建议重启IDE - 再打开
dclIndyProtocolsXE.cbproj,重复Build和Install操作——这个包包含TIdSMTP这类协议组件,必须安装
3. 检查项目链接与路径设置
- 打开出错的项目,进入
Project > Options > C++ Linker,确认Link with dynamic RTL已勾选(使用动态包时) - 进入
Project > Options > Paths and Symbols > Library Path,检查是否添加了Indy的头文件和库路径:- 头文件路径:
C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\source\Indy\Indy10\Include - 库文件路径:
C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib\Win32\Release(Debug编译则选Debug目录)
- 头文件路径:
4. 清理项目后重新编译
- 手动删除项目目录中的
*.obj、*.tds、*.exe等生成文件,或直接点击Project > Clean - 选择
Project > Build,重新编译整个项目
5. 替换兼容的最新Indy版本(可选)
若上述步骤无效,可能是自带Indy版本存在bug。下载适配RAD Studio XE的Indy 10稳定版(必须支持XE版本):
- 备份原Indy目录(
C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\source\Indy),用新源码覆盖原目录 - 重复步骤2的编译安装操作,最后清理项目重新编译
内容的提问来源于stack exchange,提问作者user369287
相关产品推荐
相关产品推荐

