tip
要求 | 例子 |
---|---|
同时编译多个c文件 | gcc main.c test.c -o main |
gcc
- gcc 安装:
- 安装mingw-get, 并将bin目录添加到环境变量
- 命令行输入
mingw-get install gcc
处理阶段与常用指令
指令格式有两种:
- gcc 依赖文件 -选项 目标文件,如 gcc main.c test.c -o main.exe
- gcc -选项 目标文件 依赖文件, 如 gcc -o main main.c test.c
用gcc在Windows上编译*.c文件并非直接生成*.exe文件(Linux上为*.out),中间还经历了预处理、编译和汇编几个过程,gcc提供了生成中间文件的指令.
命令 | 功能 | 说明 |
---|---|---|
gcc demo.c | -> a.exe | 默认名称为a |
gcc demo.c -o …/demo.exe | ->demo.exe | 使用 -o 设置名称和路径 |
gcc -E demo.c -o demo.i | ->demo.i | 预处理 -E,包含头文件、宏替换 |
gcc -S demo.i | -> demo.s | 编译 -S, 得到汇编代码 |
gcc -c Demo.s | ->demo.o | 汇编 -c,得到机器码 |
gcc Demo.o -o Demo.exe | ->demo.exe | 链接 |
gcc demo.o libtest.a -o demo.exe | ->demo.exe | 链接静态链接库 |
ar -rcs libtest.a test.c | ->libtest.a | 打包静态链接库 |
- 阶段可以跳跃,比如可以直接 gcc Demo.c -o Demo.exe, 让编译器自动预处理,编译,汇编。
- 在预处理阶段需要把调用的头文件包含进来,替换宏常量和宏代码段。
- 预处理阶段不会检查语法错误
help
gcc --help
, 列出所有的指令和简要说明
g++
与gcc基本一致
条件编译
避免头文件被重复编译
#ifndef CAMERA_H
#define CAMERA_H
......
#endif
储备知识
- GCC: GNU Compiler Collection, 包括gcc,g++等