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
只做语法检查
保存临时文件
打开警告信息
指定语言类型
改变结构体成员的字节对齐

#一些 gcc 技巧

#信息显示

  • 打印 gcc 预定义的宏信息
  • 打印 gcc 执行的子命令
  • 打印优化级别的对应选项
  • 打印彩色诊断信息
  • 打印头文件搜索路径
  • 打印连接库的具体路径

#预处理

  • 生成没有行号标记的预处理文件
  • 在命令行中预定义宏
  • 在命令行中取消宏定义

#汇编

  • 把选项传给汇编器
  • 生成有详细信息的汇编文件

#调试

  • 利用 Address Sanitizer 工具检查内存访问错误
  • 利用 Thread Sanitizer 工具检查数据竞争的问题

#连接

  • 把选项传给连接器
  • 设置动态连接器

#函数属性

  • 禁止函数被优化掉
  • 强制函数 inline

#常见错误

  • error: cast from ... to ... loses precision
  • all warnings being treated as errors
  • gdb 无法调试 gcc 编译的程序

#其它

  • 只做语法检查
  • 保存临时文件
  • 打开警告信息
  • 指定语言类型
  • 改变结构体成员的字节对齐
下一篇一些 gcc 技巧