Keil_C++环境移植第三方库出现类型错误问题解决
Keil_C++环境移植第三方库出现类型错误问题解决
@firestaradmin 2020年12月8日16:28:18
死亡如风,常伴吾身。
Keil里实现C++环境编程,在C/C++ 选项卡中 添加Misc 功能,添加--cpp11
即可支持C++。
可是在移植一些第三方库的时候会出现问题,比如说FreeRTOS、USB库等等。
如以下编译错误:
..\OS\FreeRTOS\tasks.c(2896): error: #513: a value of type "void *" cannot be assigned to an entity of type "TCB_t *"
..\OS\FreeRTOS\portable\MemMang\heap_4.c(350): error: #513: a value of type "void *" cannot be assigned to an entity of type "A_BLOCK_LINK *"
是不是看的头都大了,我曾在网上寻找许久,找的天昏地暗,觉得解决这问题真的是天方夜谭,可能有些人遇不到问题,我去FreeRTOS 官网也找了,各种国外论坛都找不倒解决方案,但是现在我知道问题所在了,那么问题怎么解决呢!!!!!
PACK包!!!!
PACK包!!!!
PACK包!!!!
没错问题就是PACK 包的版本问题!!!
如果你是F4的 板子,那么如果你用的是2.14.0 或者 2.15.0 那么恭喜你,你必定遇到这错误,我在官网找到了一条版本更新警告!如下:
可以看到,自从2.14.0 后 不在强制使用C99 MODE。 但是我在每个c文件的单独的MISC 选项中单独添加
--C99
还是会有一些莫名其妙的问题所在,所以直接使用2.13.0 版本的PACK包即可。
点击这个
按照下图设置即可完美解决一些疑难杂症
这样就可以啦!!
其他系列的单片机我没试过,不知道,其他版本我也不知道。但是F4 使用2.13.0 版本的PACK包 绝壁可以。
如果有帮到你,也不用谢我,我只是一个活雷锋!!! 谢谢!
点击编译!神清气爽! 爽!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!