补充说明
cc 是 POSIX 规定的 C 编译器接口名,通常是指向 gcc 或 clang 的符号链接(Debian 通过 update-alternatives 管理)。使用 cc 的构建脚本不绑定具体编译器,便于切换实现。
它只负责编译与链接,不提供包管理或构建编排;复杂项目应使用 Make、CMake 或 Meson。编译内核模块或依赖特定扩展时,应显式使用 gcc/clang 并确认版本。
语法
cc [选项] 源文件...
选项
-c:只编译为目标文件,不链接-o FILE:指定输出文件名-O0/-O1/-O2/-O3:优化级别-g:生成调试信息-Wall -Wextra:启用常用警告-I DIR:追加头文件搜索路径-L DIR:追加库搜索路径-l LIB:链接指定库
实例
# 编译并链接单个源文件
cc -Wall -O2 hello.c -o hello
# 分步编译:先生成目标文件
cc -c -g -Wall util.c -o util.o
# 链接多个目标文件并引入数学库
cc main.o util.o -lm -o app
# 指定头文件与库路径
cc -I./include -L./lib -lfoo app.c -o app
# 查看 cc 实际指向哪个编译器
cc --version
readlink -f "$(command -v cc)"
链接顺序很重要:依赖库应放在使用它的目标文件之后,否则可能报 undefined reference。