【发布时间】:2021-10-24 06:03:43
【问题描述】:
一张图片胜过一千个字:
我知道如何解决这个问题。但是我如何在 Microsoft 中修复它,这样我什至不会收到警告?
编辑:
- 与其他人在评论中指出的相反,这是 Microsoft 系统特有的。我可以在 linux 机器上运行完全相同的代码,在相同版本的 VsCode 中使用相同的配置(tasks.json 和 properties.json),使用相同版本的 gcc,我不会收到这些编译器警告.
- 我使用的 C 标准是 c17。
- 尝试在与格式相关的函数(如 printf 和 scanf)中使用“%z”(甚至“%ll”)等格式说明符将触发格式编译器警告,即使在完全更新的情况下(截至 2021 年 8 月) Windows 10 操作系统,带有最新的 mingw-64 工具链(特别是 gcc 8.1.0 - 这是这里使用的编译器)。
- 图片中显示的“编译器错误”实际上只是被视为错误的格式警告(引用编译器:“ [-Werror=format=] ”)
- 谢谢,“@the busybee”。你试图解决这个问题。这确实是一个很好的解决方法,但它会影响开发兼容性。
编辑 2:
在遇到导致实际意外错误的格式不兼容问题(以及在 Windows 上使用 GDB 的高级功能的糟糕经历之后)之后,我决定在 Windows 上永远放弃 GNU。对于 Windows 机器上的 C 跨平台开发,我现在使用 Clang。到目前为止,我对这个决定 100% 满意。感谢所有花时间帮助我的人。
【问题讨论】:
-
欢迎来到 Stack Overflow。请阅读How to Ask 并提出一个实际问题 - 告诉我们具体你在问什么,在你写在帖子正文中的文字中我>,not as an image。另外,不要用你的问题来发泄关于公司的问题(尤其是因为如上所述,你甚至没有正确地指责)。
-
这不是微软的错。这显然是 MinGW 的一个缺点,它不是微软的产品。
-
除了使用文本而不是图像,请使用提出问题或描述问题的主题(而不仅仅是咆哮)。
-
它是特定于 MS 的,当你在 OS 上编译时,它包含特定的头文件
标签: c gcc mingw gcc-warning format-specifiers