MDK使用armclang编译C++程序

参考例程下载:https://github.com/conscience-still/MDK-Cplusplus--LED

下载工程

MDK使用armclang编译C++程序_第1张图片

 打开工程并编译

先编译确认此工程没有任何问题

MDK使用armclang编译C++程序_第2张图片

说明:但是这个工程默认是使用armcc编译器(arm compiler 5)

切换编译器为armclang

MDK使用armclang编译C++程序_第3张图片

 设置编程语言和编译选项

MDK使用armclang编译C++程序_第4张图片

 编译出现以下问题:

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++

MDK使用armclang编译C++程序_第5张图片 查看armclang用户手册

MDK使用armclang编译C++程序_第6张图片

 所以我们将编译语言修改为C++就可以解决此问题

修改编译选项

最后再编译,一切OK

MDK使用armclang编译C++程序_第7张图片

 其他错误及解决

如果编译选项没有加-xc++则会出现namespace无法识别的错误。

MDK使用armclang编译C++程序_第8张图片

表示没有用C++编译器来编译工程,因为此工程为C++编写的,C编译器当然无法识别C++相关的语法啦。

参考文档

关于此文章中所用的C++例程,详细的基于armcc的配置步骤大家可以参考此博客:

https://blog.csdn.net/lyn631579741/article/details/105964055/

你可能感兴趣的:(Keil,MDK,c++,单片机,keil,mdk)