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 *"

image-20201208162907276

是不是看的头都大了,我曾在网上寻找许久,找的天昏地暗,觉得解决这问题真的是天方夜谭,可能有些人遇不到问题,我去FreeRTOS 官网也找了,各种国外论坛都找不倒解决方案,但是现在我知道问题所在了,那么问题怎么解决呢!!!!!

PACK包!!!!

PACK包!!!!

PACK包!!!!

没错问题就是PACK 包的版本问题!!!

image-20201208163132682

如果你是F4的 板子,那么如果你用的是2.14.0 或者 2.15.0 那么恭喜你,你必定遇到这错误,我在官网找到了一条版本更新警告!如下:

image-20201208163354071

可以看到,自从2.14.0 后 不在强制使用C99 MODE。 但是我在每个c文件的单独的MISC 选项中单独添加

--C99还是会有一些莫名其妙的问题所在,所以直接使用2.13.0 版本的PACK包即可。


点击这个

image-20201208163656071

按照下图设置即可完美解决一些疑难杂症

image-20201208163801096

这样就可以啦!!


其他系列的单片机我没试过,不知道,其他版本我也不知道。但是F4 使用2.13.0 版本的PACK包 绝壁可以。

如果有帮到你,也不用谢我,我只是一个活雷锋!!! 谢谢!


image-20201208163922938

点击编译!神清气爽! 爽!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!