0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

巧用 STM32CubeIDE 之编译警告

jf_pJlTbmA9 来源:STM32单片机 作者:STM32单片机 2023-10-25 16:33 次阅读

1.前言

编译警告对于工程师们来说,是再常见不过的东西了。对于严谨的工程师们,任何 warning 都是不会忽视的。

2.巧妙使用 warning

STM32CubeIDE 中可以通过warning(甚至 error)的方式来通知工程师,使得一些容易遗漏的配置得到重视。

例如,在释放参考代码给客户时,希望客户注意到里面的项目名称和项目版本,那么我们可以在代码中,通过“#error ”来强调必须要修改的信息,通过“#warning”来备注需要注意的信息。具体代码如图 1:

wKgaomUDw46AInh4AAFWi-zoiSs095.png

这样,当客户编译工程时,会出现 error 和 warning,见图 2,只有将“#error”和 “#warning”两行分别注释掉,才会分别消除这两项编译信息,以此达到警示客户的目的。

wKgaomUDw5CAHuTzAAFiS799EYI093.png

2.1. 主动屏蔽特定的 warning

在有些场景,我们还可以在特定的代码或者文件作用域内,主动屏蔽特定的 warning。

例如,工程中写了一个测试函数“void MyTestFunction(void)”,但是在工程中暂时没有被调用,直接编译会得到“Wunused-function”的 warning。

但是如果在代码中添加这样的语句:

#pragma GCC diagnostic ignored "-Wunused-function"。

/*此区间内,如果出现函数仅申明,但是没有被调用时,编译不产生warning*/ voidMyTestFunction(void){…}

#pragma GCC diagnostic pop

因为我们配置了“-Wunused-function”,那么在编译时,即使 MyTestFunction 没有 被调用,编译也不产生 warning。

我们还可以在 STM32CubeIDE 中,通过“Help”->“Information Center”->“Read STM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 编译器文档,从而发现更多的 warning 选项,根据需要主动屏蔽更多的 warning。见图 3 :

wKgZomUDw5KAH5yjAAK3031kFFI899.png

3. 小结

事实上,在编译项目时,warning 和 error 同样重要,部分隐蔽的问题可能就和 warning 相关。当我们对工程代码和编译器有了更深层次的了解后,可以巧妙地使用和屏蔽 warning,帮我们更好地管理项目。

来源:STM32单片机

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354706
  • IDE
    IDE
    +关注

    关注

    0

    文章

    334

    浏览量

    46663
  • 编译
    +关注

    关注

    0

    文章

    652

    浏览量

    32800
收藏 人收藏

    评论

    相关推荐

    STM32CubeIDE入门教程 STM32CubeIDE安装使用教程

    STM32CubeIDE是一个高级C / C ++开发平台,具有用于STM32微控制器和微处理器的外设配置,代码生成,代码编译和调试功能。它基于Eclipse® / CDT框架和GCC工具链进行开发,并基于GDB进行调试。它允许
    的头像 发表于 06-08 09:19 9064次阅读
    <b class='flag-5'>STM32CubeIDE</b>入门教程 <b class='flag-5'>STM32CubeIDE</b>安装使用教程

    STM32CubeIDE软件实现STM32外部中断实例

    本文用STM32CubeIDE软件实现STM32外部中断实例。
    的头像 发表于 08-24 09:09 4314次阅读

    STM32CubeIDE SWV功能介绍

    01 引言 STM32CubeIDE是ST官方推出的集成开发环境,集成了很多STM32的调试与开发工具。本文主要介绍如何使用SWV功能来打印输出。 02 问题描述 客户使用STM32CubeIDE
    的头像 发表于 10-13 14:20 3695次阅读
    <b class='flag-5'>STM32CubeIDE</b> SWV功能介绍

    Ubuntu 18.04 安装 STM32CubeIDE 小记

    Ubuntu 18.04 安装 STM32CubeIDE 小记
    发表于 11-18 17:36 9次下载
    Ubuntu 18.04 安装 <b class='flag-5'>STM32CubeIDE</b> 小记

    STM32CubeIDE使用

    参考STM32CubeIDE属于一站式工具,本文带你体验它的强大第一个STM32CubeIDE项目STM32CubeIDE使用记录STM32CubeIDE使用笔记(03):使用ST-L
    发表于 12-02 17:21 29次下载
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初识

    STM32CubeIDE初识
    发表于 12-02 18:36 23次下载
    <b class='flag-5'>STM32CubeIDE</b>初识

    STM32CubeIDE安装-NSIS Error问题

    STM32CubeIDE安装-NSIS Error问题
    发表于 12-03 21:06 18次下载
    <b class='flag-5'>STM32CubeIDE</b>安装-NSIS Error问题

    STM32CubeIDE的MCU开发

    STM32开发环境是ARM公司的KEIL软件, 由于KEIL对于STM32大部分型号是收费的, 使用需要破解, 存在版权问题。 并且使用KEIL编译大型工程, 编译太慢了,
    发表于 12-05 12:21 25次下载
    <b class='flag-5'>STM32CubeIDE</b>的MCU开发

    STM32CUBEIDE(1)----安装

    概述 STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。 STM32CubeIDE是一种高级C/C++开发平台,具有STM32微控制器和微处
    的头像 发表于 11-22 09:52 1241次阅读
    <b class='flag-5'>STM32CUBEIDE</b>(1)----安装

    应用笔记|巧用 STM32CubeIDE 编译警告

    关键字:STM32CubeIDE,warning,编译警告 目录预览 1 前言 2 巧用 warning 3 小结 1. 前言 编译
    的头像 发表于 06-29 17:35 1297次阅读
    应用笔记|<b class='flag-5'>巧用</b> <b class='flag-5'>STM32CubeIDE</b> <b class='flag-5'>之</b><b class='flag-5'>编译</b><b class='flag-5'>警告</b>

    STM32CubeIDE安装指南

    电子发烧友网站提供《STM32CubeIDE安装指南.pdf》资料免费下载
    发表于 08-01 15:44 6次下载
    <b class='flag-5'>STM32CubeIDE</b>安装指南

    STM32CubeIDE实用技巧配置Heap空间

    STM32CubeIDE实用技巧配置Heap空间
    的头像 发表于 10-31 17:30 1067次阅读
    <b class='flag-5'>STM32CubeIDE</b>实用技巧<b class='flag-5'>之</b>配置Heap空间

    STM32CubeIDE实用技巧配置堆空间

    电子发烧友网站提供《STM32CubeIDE实用技巧配置堆空间.pdf》资料免费下载
    发表于 09-19 15:07 5次下载
    <b class='flag-5'>STM32CubeIDE</b>实用技巧<b class='flag-5'>之</b>配置堆空间

    STM32CubeIDE实用技巧ld链接文件

    电子发烧友网站提供《STM32CubeIDE实用技巧ld链接文件.pdf》资料免费下载
    发表于 09-20 10:31 1次下载
    <b class='flag-5'>STM32CubeIDE</b>实用技巧<b class='flag-5'>之</b>ld链接文件

    巧用编译编译警告

    STM32CubeIDE中,我们可以通过主动warning(甚至error)的方式来通知工程师,使得一些容易遗漏的配置得到重视。例如,在释放参考代码给客户时,希望客户注意到里面的项目名称和项目版本
    的头像 发表于 08-30 11:46 272次阅读
    <b class='flag-5'>巧用</b><b class='flag-5'>编译</b>器<b class='flag-5'>之</b><b class='flag-5'>编译</b><b class='flag-5'>警告</b>