You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Code::Blocks 16.01中同时启用C99与C++11的问题咨询

问题解答

是不是Code::Blocks 16.01特有问题?

是的,这个界面选项互斥的问题是16.01版本的老bug。后续更新的版本(比如17.12及之后)重构了编译器配置界面,会单独区分C、C++项目的标准设置,不会出现这种勾选冲突的情况。

16.01版本的临时解决办法

因为gcc和g++本质是独立的二进制程序,只是旧版Code::Blocks的UI没做区分,直接手动添加编译选项就能绕开限制:

  • 针对单个项目:
    1. 右键项目 → Build options
    2. 切换到Compiler settings标签页 → Other options
    3. 如果是C项目,添加一行:-std=c++11(需要更高标准可换成-std=c++14/-std=c++17),这样就能正常使用nullptr这类C11特性
    4. 如果是C项目,添加一行:-std=c99,代替界面上的勾选,就能启用C99标准
  • 全局配置(所有新项目生效):
    1. 顶部菜单栏Settings → Compiler
    2. 在Global compiler settings里,分别切换到GCC Compiler(对应C语言)和G++ Compiler(对应C++)的标签页
    3. 同样在Other options里添加对应标准的命令行参数即可

补充说明

旧版界面把gcc和g++的标准选项混在一起,导致勾选冲突,但实际上手动添加-std参数是直接传递给对应编译器的,完全不会有冲突,这也是最直接的解决方式。

内容的提问来源于stack exchange,提问作者markoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:02:44