错误集锦
前几天跟着学长做一个智能监护仪,而我就负责GPS定位的那一块。虽然只是小小的一部分,但是其中的
收获还是挺多的,下面记点在keil编程中出现的一些错误。希望以后能尽量避免犯同样的错误:
错误1:...\HARDWARE\GPS.C(90): error C241: '_get_double_number': auto segment too large
原因:存储容量不足解决方案:在Target标签中,将Memory Model从small改为large, 这样编译的存储空间就从DATA变成了XDATA,也就解决了存储容量不足的问题。
错误2:*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
原因:把变量定义到了头文件中(这儿的变量需要在别的文件中调用)这样你在另一个文件中使用了该头文件又对该变量进行了声明,这样就会出现重复定义。解决方案:将变量定义在头文件对应的文件当中,当在别的文件中需要调用该变量时用extern来调用该变量这儿的变量一定是全局变量才能在其他文件中使用。(static和局部变量就另当别论了)
错误3:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
原因:定义了函数,但是在主函数中没有调用它,可能会隐藏很大的BUG在里面。解决方案:仔细排查,根据警告中给出的函数名匹配自己对应的函数。
错误4:出现了很多莫名其妙的错误(有些本来就是对的它却提醒错误)
原因:有可能是在头文件中声明函数后面没有加分号造成的(原因之一)解决方案:查找对应头文件中的函数声明,及时纠正。
待续。。。。。。。。