logo
Korbin's blog
logo
Korbin's blog

一些 gcc 技巧

打印 gcc 预定义的宏信息
打印 gcc 执行的子命令
打印优化级别的对应选项
打印彩色诊断信息
打印头文件搜索路径
打印连接库的具体路径
生成没有行号标记的预处理文件
在命令行中预定义宏
在命令行中取消宏定义
把选项传给汇编器
生成有详细信息的汇编文件
利用 Address Sanitizer 工具检查内存访问错误
利用 Thread Sanitizer 工具检查数据竞争的问题
把选项传给连接器
设置动态连接器
禁止函数被优化掉
强制函数永远以 inline 的形式调用
error: cast from ... to ... loses precision
all warnings being treated as errors
只做语法检查
保存临时文件
打开警告信息
指定语言类型
改变结构体成员的字节对齐

#只做语法检查

#例子

$ cat foo.c union u { char c; int i; } $ gcc -fsyntax-only foo.c foo.c:4:1: error: expected identifier or ‘(’ at end of input

#技巧

如上所示,使用-fsyntax-only选项可以只做语法检查,不进行实际的编译输出。

详情参见gcc 手册

#贡献者

xmj

上一篇all warnings being treated as errors
下一篇保存临时文件