完美解决Indy 编译提示版本不一致的问题

所属分类: 软件编程 / Delphi 阅读数: 129
收藏 0 赞 0 分享

1,起因

某delphi程序A使用了Indy9.0.18组件。机器中原本自带老版本的Indy组件9.0.12,后升级到9.0.18,使用一直正常。

某次操作将程序A重新build all了一下,结果提示如下信息,此后即便是compile也会出错。

[Fatal Error] uMain.pas(11): Unit IdServerIOHandlerSocket was compiled with a different version of IdServerIOHandler.TIdServerIOHandler

2,解决

显然错误原因在于indy组件出现了交错使用,应将老版本的组件彻底删除干净。

先是重装Indy组件9.0.12。将Delphi7\Source\Indy目录下的文件用新版覆盖,然后重新编译。将生成的dcu拷贝到LIb目录覆盖。

结果问题依旧。

在delphi目录下搜索id文件,发现Lib\Debug下有大量id*.dcu文件。可能是这些文件是旧版的。

于是采用9.0.12的dcu文件将其覆盖,再次rebuild程序A,通过!

3,分析

那么为什么会和“Lib\Debug”目录有关呢? delphi IDE配置了搜索目录“$(DELPHI)\Lib”,但并未配置使用Lib下的Debug目录呀。

其实新编一个工程,放入indy新版组件组件,即使Lib\Debug下有旧版组件,rebuild也是不会出错的。

分析发现,这个“Lib\Debug”目录和工程配置有关。原来,本人想要debug程序A,于是在工程选项中勾选了“Use Debug DCUs”

此选项将自动使用“Lib\Debug”目录的dcu文件,而不是Lib目录下的dcu。因为Lib目录下的dcu文件中不含调试信息。

此时我们打开IDE的debugger选项窗口,可以发现IDE使用到了“Lib\Debug”目录的dcu文件。

至此问题得到了解决,并且做到了“知其然且知其所以然”!

以上这篇完美解决Indy 编译提示版本不一致的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Delphi基本图像处理方法汇总

这篇文章主要介绍了Delphi基本图像处理方法,实例汇总了Delphi操作图像实现浮雕、反色、模糊、翻转等常用效果的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows API GetLastError()函数返回值含义解释

这篇文章主要介绍了Windows API GetLastError()函数返回值含义解释,本文罗列了所有错误代码及中文注释,需要的朋友可以参考下
收藏 0 赞 0 分享

delphi制作wav文件的方法

这篇文章主要介绍了delphi制作wav文件的方法,涉及Delphi操作多媒体文件的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

ListView 百分比进度条(delphi版)

本文通过实例代码给大家介绍ListView 百分比进度条,本文使用的是delphi语言实现的,代码比较简单实用,希望的朋友参考下
收藏 0 赞 0 分享

Delphi XE5 为Android应用制作签名的方法(图文)

这篇文章主要介绍了Delphi XE5 为Android应用制作签名的方法(图文),需要的朋友可以参考下
收藏 0 赞 0 分享

TImage组件实现保存图片到Stream

这篇文章主要介绍了TImage组件实现保存图片到Stream以及从stream中读取图片的方法,非常的实用,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

Delphi提取PDF文本实例

下面小编就为大家带来一篇Delphi提取PDF文本实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Delphi 中内存映射对于大文件的使用

这篇文章主要介绍了Delphi 中内存映射对于大文件的使用的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
收藏 0 赞 0 分享

Delphi 根据字符串找到函数并执行的实例

这篇文章主要介绍了Delphi 根据字符串找到函数并执行的实例的相关资料,希望通过本能帮助到大家实现这样的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

Delphi 用DLL实现插件的简单实例

这篇文章主要介绍了Delphi 用DLL实现插件的简单实例的相关资料,希望通过本文能帮助到大家,这里提供实例帮助大家掌握这部分内容,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多