当前位置: 首页 > web >正文

set(CMAKE_C_FLAGS “${CMAKE_C_FLAGS} -ansi -pedantic -Wall“)

2025年5月13日,周二晚上


这段代码是 CMake 脚本中用于设置 C 编译器选项的命令,具体含义如下:


1. 命令解析

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ansi -pedantic -Wall")

CMAKE_C_FLAGS:CMake 中用于设置 C 编译器选项的变量。

"${CMAKE_C_FLAGS} -ansi -pedantic -Wall"

在原有编译选项(${CMAKE_C_FLAGS})的基础上,追加三个新选项:
-ansi:要求编译器遵循 ANSI C 标准(即 C89/C90),禁用非标准扩展。

-pedantic:启用严格标准检查,拒绝不符合 ANSI/ISO C 的代码(如零长度数组、GCC 扩展语法等)。

-Wall:启用所有常见警告(如未使用变量、类型不匹配等),帮助发现潜在问题。


2. 各选项的作用

选项功能说明典型场景
-ansi强制代码符合 C89/C90 标准,禁用编译器扩展(如 // 注释在 C90 中非法)需要严格兼容旧代码或跨平台时
-pedantic对违反标准的代码发出警告/错误(需配合 -ansi-std=cXX 使用)代码规范检查、移植性要求高时
-Wall启用基础警告(如未初始化变量、隐式类型转换)日常开发中提高代码质量

http://www.xdnf.cn/news/5880.html

相关文章:

  • JVM——方法内联之去虚化
  • 【go】binary包,大小端理解,read,write使用,自实现TCP封包拆包案例
  • Go构建高并发权重抽奖系统:从设计到优化全流程指南
  • Python 基础语法与数据类型(八) - 函数参数:位置参数、关键字参数、默认参数、可变参数 (*args, **kwargs)
  • 【PyTorch】深度学习实践——第二章:线性模型
  • 【数据结构】——栈和队列OJ
  • python酒店健身俱乐部管理系统
  • iPaaS 集成平台如何解决供应链响应速度问题?
  • Spring AI 开发本地deepseek对话快速上手笔记
  • 07_Java中的锁
  • 系统平衡与企业挑战
  • Tomcat与纯 Java Socket 实现远程通信的区别
  • 中国人工智能智能体研究报告
  • Linux的文件查找与压缩
  • 关于cleanRL Q-learning
  • Java集合框架详解与使用场景示例
  • MySQL 5.7在CentOS 7.9系统下的安装(下)——给MySQL设置密码
  • Android NDK 高版本交叉编译:为何无需配置 FLAGS 和 INCLUDES
  • org.slf4j.MDC介绍-笔记
  • 集成DHTMLX 预订排期调度组件实践指南:如何实现后端数据格式转换
  • web 自动化之 yaml 数据/日志/截图
  • Boundary Attention Constrained Zero-Shot Layout-To-Image Generation
  • 配置hadoop集群-启动集群
  • apache2的默认html修改
  • 【前端三剑客】Ajax技术实现前端开发
  • ETL 数据集成平台与数据仓库的关系及 ETL 工具推荐
  • 前端流行框架Vue3教程:15. 组件事件
  • kafka----初步安装与配置
  • PROFIBUS DP转ModbusTCP网关模块于污水处理系统的成功应用案例解读​
  • C++中的各式类型转换