使用MDK编译stm32程序中的错误

最近调试stm32f103的usb接口,因为库文件比较多,编译时出了挺多错误,一些错误是以前没有发现,由于新添加库文件引起冲突才浮出水面。

错误1:提示s8等类型重定义

  这是由于未正确包含库文件,或者包含了错误的库文件造成的。我现在用的stm32官方库文件版本为3.3.0,而MDK4中包含的则是2.0.1,如果在工程目录中没有添加正确的库文件地址,则编译器将到默认目录下寻找,也就是使用MDK4中的旧版本库文件,这样冲突就无可避免了。

  另一个可能的原因是包含头文件时候使用#include "" 和 <> 的区别,前者是先查找当前工作目录,再搜索系统目录,后者则相反。至于搜索系统目录的过程则是由mdk编译器决定的了。只是猜想,未经验证,实在不想翻uVision的说明文档了。

 

错误2:Undefined symbol xxx

     一般是由于没有包含相应的头文件造成的

 

错误3:变量声明位于可执行部分之后

  用惯了c++的人可能很习惯随手定义变量的方便,即便是c99标准也支持这一特性,但是mdk默认是不支持c99标准的,如果需要启动,可以使用编译器选项--c99启动。

 

其他错误还会随时整理进来。   

原文链接: https://www.cnblogs.com/willx/archive/2012/03/23/2413131.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    使用MDK编译stm32程序中的错误

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/44966

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午9:36
下一篇 2023年2月8日 下午9:36

相关推荐