关于keil中error: this old version of 's8051.dll' is incompatible with uisi...
以前安装了针对C51的keil uvision 2,前不久学STM32又安装了keil MDK 但是开发环境是 keil uvision 4。昨天在keil 4里面弄了一个51的工程,结果调试仿真时却提示error: this old version of 's8051.dll' is incompatible with uision (UV3.exe)甚是郁闷,没办法只好百度了。网上搜索了半天,得到的答案是将2个软件分开安装在不同盘符(我之前都安装在D盘),我反复安装卸载了好几次,坑爹啊,还是不行!反正每次安装好后只有其中一个是好的!
接下来我就开始研究了~~我发现将两个软件分开安装在不同盘符时,MDK里面会有Uv4、ARM、TOOLS.ini 3个文件(当然还有个卸载程序~~),keil 2里面有Uv2、C51、TOOLS.ini 3个文件。但是2个软件安装在一个文件夹里时有Uv2、Uv4、ARM、C51和一个TOOLS.ini文件。仔细分析这3个TOOLS.ini文件我发现最后一个应该是包含了前两个的内容的,它里面有2版本和4版本所使用dll等文件路径的信息,所以在仿真调试时才能找到相应的文件。而这时我也明白了keil uvision 4 只是一个集成开发环境,而配合不同的工具包(如ARM、C51)就能完成不同的工作,而上述问题应该是无法找到相应文件的路径(另一种想法是版本问题)。我发现先安装的软件能包含后安装工具包的路径信息,因为我尝试过先安装MDK然后安装keil C51(keil uvision 2)这时keil 4中能调试仿真51工程了但是不知怎么搞得ARM文件夹里缺少BIN文件夹调试arm工程又出现了问题,无语了都。我现在也明白了网上说的安装在不同盘符的目的了:2个软件产生2个TOOLS.ini,互不干扰,即我要调arm的程序就用keil uvision 4(的ARM工具包),调51程序就用keil uvision 2(的C51工具包),我之前是在keil 4 里面调51的程序和arm的程序所以总是提示有错。但这种方法未免也太麻烦了吧~~
其实仔细看看错误提示,他说s8051.dll与UV3(我觉地应该是我使用的UV4)不相容,s8051.dll肯定是我keil 2里面C51工具包中的文件了。既然你说工具包版本与开发环境版本不相容,那我下个keil 4 环境下的C51工具包总可以了吧!最后,我把MDK和keil C51全卸载了,然后下载了keil C51 V9.0(开发环境是keil uvision 4)安装,然后再安装keil MDK(开发环境也是keil uvision 4),终于搞定了!(两个软件安装在同一个文件夹里)
废话了这么多,只是不想让遇到同样问题的朋友们像我一样浪费了好几个小时的时间!
顶小编啊,我只知道在安装的时候安在不同的盘里,不知道这是为什么,现在终于知道了.谢谢
太感谢了。
今天依然在借鉴,感谢
直接安装keil C51 V9.0就可以了,不用卸载的
感谢 我也是遇见这样的问题
哈哈,非常好,我的问题解决了
谢谢,解决了我的问题
感谢!
我把原来的S8051.dll删了,又下了一个兼容的s8051.dll放了回去,结果可以调试了
