文章目录 1 前言 2 回顾 2.1 主要内容 2.2 知识点回顾 3 实战分析 3.1 代码编写阶段 3.2 预编译阶段 3.2.1 No such file or directory (找不到某个文件或目录) 3.2.2 宏定义的问题 3.2.3 条件编译的问题 3.3 编译阶段 3.4 汇编阶段 3.5 链接阶段 3.5.1 undefined reference to ‘xxx’ 3.5.2 cannot find -lxxx 3.5.3 multiple definition of ’xxx‘ 3.6 转换阶段 3.7 其他阶段 4 分享几个经验 4.1 分享几个非常奇葩的编译问题 4.1.1 宏定义的这种写法 4.1.2 static和inline搞什么 4.1.3 环境变量的锅 4.1.4 身边的例子 4.2 分享几个常用于排查编译问题的方法 4.2.1 打开编译过程的完整log输出 4.2.1.1 Makefile构建环境下 4.2.1.2 CMake构建环境下 4.2.1.3 scons构建环境下 4.2.2 打开编译过程的中间文件的输出 4.2.2.1 gcc编译环境下 4.2.2.2 KEIL构建环境下 4.3 友情提醒 5 新年祝福 6 更多分享 1 前言 月初的时候我整理发出的技术文章:《【gcc编译优化系列】一文带你了解C代码到底是如何被编译的》,已经收到了好几个朋友的点赞了;同时,特别惊喜的是,还收到论坛元老级别的大佬 aozima推荐和打赏,真的倍感荣幸。