请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 8868|回复: 13
收起左侧

[开发工具] 屏蔽MDK AC6使用中文GBK编码的警告方法,让大家可以继续使用GBK编码汉字

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
发表于 2020-7-7 09:01:52 | 显示全部楼层 |阅读模式

升级到MDK AC6后,工程里面用到GBK编码方式的中文时,会提示非法字符,一堆警告看着很不舒服,但是程序里面使用是正常的。

1.jpg

针对这种情况,就可以直接屏蔽到屏蔽方法如下:

将大写字母W去掉,加上前缀-Wno-即可,这个是AC6使用的屏蔽警告方式

QQ图片20200707090038.png


回复

使用道具 举报

25

主题

287

回帖

367

积分

高级会员

积分
367
发表于 2020-7-7 09:12:22 | 显示全部楼层
会不会把其他的警告也屏蔽了?如果只想屏蔽这一种警告该怎么设置?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-7-7 09:36:53 | 显示全部楼层
爱恋之燕 发表于 2020-7-7 09:12
会不会把其他的警告也屏蔽了?如果只想屏蔽这一种警告该怎么设置?

这是一类警告,这里有列表说明:


MDK AC6的所有警告类型一览表
http://www.armbbs.cn/forum.php?m ... 8671&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2020-7-7 10:02:04 | 显示全部楼层
补上出处,省的以后找。

MDK的AC5转AC6注意事项文档
http://www.armbbs.cn/forum.php?mod=viewthread&tid=96796

QQ截图20200707100132.jpg

回复

使用道具 举报

606

主题

3019

回帖

4857

积分

至尊会员

积分
4857
发表于 2020-7-9 09:56:00 | 显示全部楼层
效果很好哇,感谢大神啊
回复

使用道具 举报

3

主题

19

回帖

28

积分

新手上路

积分
28
发表于 2020-10-13 22:41:53 | 显示全部楼层
效果很好。立竿见影,终于去掉烦人的警告了。
回复

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

积分
391
发表于 2020-11-4 11:30:24 | 显示全部楼层
-Wno-invalid-source-encoding  感谢分析,那个warnings 需要宣称AC5要不然真受不了警告信息,
现在5.30版本新建得工程默认都是AC6了
回复

使用道具 举报

8

主题

28

回帖

52

积分

初级会员

积分
52
发表于 2022-12-5 16:23:09 | 显示全部楼层
image.png

AC6怎样解决这个警告?我的确设了C99编译器的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2022-12-6 10:04:16 | 显示全部楼层
q164129345 发表于 2022-12-5 16:23
AC6怎样解决这个警告?我的确设了C99编译器的。

这个得修改下代码兼容下AC6了。
回复

使用道具 举报

8

主题

28

回帖

52

积分

初级会员

积分
52
发表于 2023-1-16 18:51:26 | 显示全部楼层
eric2013 发表于 2022-12-6 10:04
这个得修改下代码兼容下AC6了。

是的。。。。我还是退回AC5了。
回复

使用道具 举报

18

主题

228

回帖

282

积分

高级会员

积分
282
发表于 2023-1-17 08:41:03 | 显示全部楼层
q164129345 发表于 2023-1-16 18:51
是的。。。。我还是退回AC5了。

你用错了吧
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdarg.h>

#define DEBUG_1(fmt, ...)  printf(fmt, ##__VA_ARGS__); printf("\r\n");
#define DEBUG_2(fmt)       printf(fmt); printf("\r\n");

int main ( void )
{
    DEBUG_1("hello");
    DEBUG_2("world");
    return 0;
}

回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
发表于 2023-6-19 20:40:37 | 显示全部楼层
我今天尝试了一下,还有个办法。就是将ANSI的编码改成UTF-8.
具体做法可以用vscode以GB2312打开之后另存为UTF-8.
实测完美解决。
回头可以尝试写个脚本,将所有的文件自动另存为UTF-8会更好一些。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
105917
QQ
 楼主| 发表于 2023-6-20 00:12:57 | 显示全部楼层
watershade 发表于 2023-6-19 20:40
我今天尝试了一下,还有个办法。就是将ANSI的编码改成UTF-8.
具体做法可以用vscode以GB2312打开之后另存为 ...

这个也有整理,主要是转换为UTF-8后,客户使用GUI之类的功能,如果是用的GBK编码就不太方便。

使用MDK的AC6无法正常使用GBK编码汉字的解决办法
https://www.armbbs.cn/forum.php? ... 7178&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

32

回帖

35

积分

新手上路

积分
35
发表于 2023-6-26 11:01:51 | 显示全部楼层
eric2013 发表于 2023-6-20 00:12
这个也有整理,主要是转换为UTF-8后,客户使用GUI之类的功能,如果是用的GBK编码就不太方便。

使用MDK ...

vscode如果不配置,默认也是utf-8的编码。实际工作中,确实会遇到你说的情况。我们以前单位的一个项目,经常看到有一些祖传的代码显示乱码的情况。要最差到git很早的记录才能修复。就是因为出现了编码不统一的情况。所以最好做个脚本,将整个项目强制转化成一种编码格式,并且在提交前由脚本检查一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-3-29 05:48 , Processed in 0.353769 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表