参考例程下载:https://github.com/conscience-still/MDK-Cplusplus--LED
下载工程
打开工程并编译
先编译确认此工程没有任何问题
说明:但是这个工程默认是使用armcc编译器(arm compiler 5)
切换编译器为armclang
设置编程语言和编译选项
编译出现以下问题:
error: invalid argument '-std=c99' not allowed with 'C++'
compiling system_stm32f0xx.c...
error: invalid argument '-std=c99' not allowed with 'C++'
compiling retarget.c...
error: invalid argument '-std=c99' not allowed with 'C++'
这个错误意思是-std=c99不允许使用C++,后面查看-std这个编译选项发现这个是用来指定编译语言类型的,比如C或者C++
查看armclang用户手册
所以我们将编译语言修改为C++就可以解决此问题
修改编译选项
最后再编译,一切OK
其他错误及解决
如果编译选项没有加-xc++则会出现namespace无法识别的错误。
表示没有用C++编译器来编译工程,因为此工程为C++编写的,C编译器当然无法识别C++相关的语法啦。
参考文档
关于此文章中所用的C++例程,详细的基于armcc的配置步骤大家可以参考此博客:
https://blog.csdn.net/lyn631579741/article/details/105964055/