MDK ACC6编译器如何屏蔽警告

本文介绍了如何在ACC6编译器中管理和屏蔽警告,特别是针对printf中文打印时出现的-illegal-source-encoding警告。指南包括设置警告类型、屏蔽特定警告的指令及其在μVision中的应用。
摘要由CSDN通过智能技术生成

对于ACC6警告部分,我们可以参考官Keil官方的说明。

µVision User's Guide (arm.com)icon-default.png?t=N7T8https://developer.arm.com/documentation/101407/0538/Dialogs/Project/Options/Compiler/Arm-C-C----AC6--Compiler

打开链接之后,我们往下滑,可以看到关于警告的介绍

这里介绍了,用户可以设置5种警告显示类型,下图的软件界面

这种警告分别为:

  • <unspecified> — 不添加编译器控件字符串。该行为取决于编译器默认值或在父 uVision 组级别上设置的选项,是默认设置。
  • No Warnings —没有警告,不显示任何诊断信息。设置编译器控件字符串-W.
  • All Warnings —显示所有警告, 是 uVision 的默认设置。显示编译器控制字符串中列出的所有诊断 Weverything 并排除 (-Wno-xxx):
    -Weverything
    -Wno-reserved-id-macro
    -Wno-unused-macros
    -Wno-documentation-unknown-command
    -Wno-documentation
    -Wno-reserved-identifier(适用于 Arm Compiler 6.17 及更高版本)
  • AC5-like Warnings—类似 AC5 的警告 ,显示 ARM 编译器 5 将显示的所有警告。可以禁止显示以下警告:
    -Wno-missing-variable-declarations
    -Wno-missing-prototypes
    -Wno-missing-noreturn
    -Wno-sign-conversion
    -Wnonportable-include-path
    -Wno-packed
    -Wno-reserved-id-macro
    -Wno-unused-macros
    -Wno-documentation-unknown-command
    -Wno-documentation
    -Wno-license-management
    -Wno-parentheses-equality
    -Wno-reserved-identifier(适用于 Arm Compiler 6.17 及更高版本)
  • MISRA compatible — 显示除与 MISRA 规则冲突的警告之外的所有警告。

-Wno-covered-switch-default
-Wno-unreachable-code-break
-Wno-reserved-identifier(适用于 Arm 编译器 6.17 及更高版本)

一般我们配置成AC5-like Warnings

那么,我们要如何去忽略特定的警告呢?

第一步,屏蔽的警告是什么类型?

下图是一个中文编码的警告,就是我们在使用printf的时候,需要打印中文的时候,会出现以下警告,学习过单片机的朋友都知道,这个警告其实是不会影响系统运行的,可以忽略。

这里,我们可以轻易的知道,该警告类型为 :  [-Winvalid-source-encoding]

第二步,如何去屏蔽警告?

对于ACC6编译器,我们使用 -Wno+警告类型   指令去屏蔽警告,具体操作如下

将[-Winvalid-source-encoding]警告类型去掉 ‘W’和括号,得到   -invalid-source-encoding

然后在前面加上 -Wno,于是得到  -Wno-invalid-source-encoding

!!!这里注意的是,如果前面已经有指令了,需要后面再插入指令的话,我们要加上一个空格,然后再继续添加我们的指令,否则会出错。

这时候,可以看到,警告消失了

下面是关于一些指令的简要解释:

  • -Wno-license-management: 禁用与许可证管理相关的警告。
  • -Wunused: 报告未使用的变量、函数和参数。
  • -Wuninitialized: 报告未初始化的变量。
  • -Wall: 启用所有“有用”的警告。
  • -Wextra: 启用一些额外的编译器警告,这些警告不是-Wall所包含的。
  • -Wmissing-declarations: 报告没有声明就使用的函数。
  • -Wconversion: 报告可能改变值的类型转换。
  • -Wpointer-arith: 报告与指针运算相关的潜在问题。
  • -Wshadow: 报告局部变量遮蔽全局变量或函数参数的情况。
  • -Waggregate-return: 报告返回结构体或联合体的函数,这可能导致不必要的内存拷贝。
  • -Wfloat-equal: 报告浮点数的直接相等比较,这通常是不安全的。

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在安装 KEIL5 MDK 的过程中,如果您想使用 V5 编译器,您需要自己安装 V5 编译器。目前 KEIL 官网最新版本的安装包默认安装了 V6 编译器,不再自动安装 V5 编译器,因为 V5 编译器与 V6 编译器在编译过程中存在很多代码不兼容的情况,可能导致工程编译失败。所以如果您需要使用新版 KEIL5 MDK 并使用 V5 编译器,您可以按照以下步骤进行安装: 1.下载 V5 编译器:您可以通过百度网盘的下载链接 或者官网的下载链接进行下载。 2.安装 KEIL5 MDK:您可以从 KEIL 官网下载最新版本的安装包,并按照官方提供的安装步骤进行安装。 3.安装 V5 编译器:在安装 KEIL5 MDK 的过程中,默认是不会自动安装 V5 编译器的。所以您需要在安装完成 KEIL5 MDK 后,独立安装 V5 编译器。您可以打开已安装的 KEIL5 MDK,找到安装路径,然后根据路径去找到 V5 编译器的安装包进行安装 。 请注意,以上是基于目前 KEIL 官网最新版本的情况下的安装步骤,可能会有变动,请以官方的说明和指南为准。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [KeilMDK V5编译器的安装](https://blog.csdn.net/weixin_42727214/article/details/132378555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [KEIL5MDK安装及V5编译器的安装](https://blog.csdn.net/qq_41187932/article/details/129932769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值