关键字:STM32CubeIDE,warning,编译警告
目录预览
1 前言2 巧用 warning3 小结
1. 前言
编译警告对于工程师们来说,是再常见不过的东西了。对于严谨的工程师们,任何 warning 都是不会忽视的。
2. 巧妙使用 warning
在 STM32CubeIDE 中可以通过warning(甚至 error)的方式来通知工程师,使得一些容易遗漏的配置得到重视。
例如,在释放参考代码给客户时,希望客户注意到里面的项目名称和项目版本,那么我们可以在代码中,通过“#error ”来强调必须要修改的信息,通过“#warning”来备注需要注意的信息。具体代码如图 1:
这样,当客户编译工程时,会出现 error 和 warning,见图 2,只有将“#error”和“#warning”两行分别注释掉,才会分别消除这两项编译信息,以此达到警示客户的目的。
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 :
3. 小结
事实上,在编译项目时,warning 和 error 同样重要,部分隐蔽的问题可能就和warning 相关。当我们对工程代码和编译器有了更深层次的了解后,可以巧妙地使用和屏蔽 warning,帮我们更好地管理项目。
完整内容请点击“阅读原文”下载原文档。

长按扫码关注公众号
更多资讯,尽在STM32
▽点击“阅读原文”,可下载原文档
原文标题:应用笔记|巧用 STM32CubeIDE 之编译警告
文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。
-
单片机
+关注
关注
6069文章
45076浏览量
653898 -
STM32
+关注
关注
2296文章
11038浏览量
366667
原文标题:应用笔记|巧用 STM32CubeIDE 之编译警告
文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
stm32cubeIDE使用malloc失败是什么原因?
stm32cubeIDE使用malloc失败是什么原因?
stm32cubeIDE使用malloc失败的原因?
STM32CubeIDE编译设置是否有像keil一样有编译后执行Bat脚本的功能和设置?
使用STM32CubeIDE调试STM32MP157D的M4内核时报了错误怎么解决?
STM32CubeIDE为什么无法生成工程和代码?
Stm32CubeIDE能像Keil一样指定不同文件下的代码编译到不同的FLASH地址吗?
stm32cubeide编译HEX文件输出只有1k,为什么?
巧用编译器之编译警告

评论