命令
- gcc/clang -g -O2 -o test test.c -I ... -L ... -l
- gcc Linux环境下的命令;clang是MAC环境下的执行命令
- -g 输出文件中的调试信息
- -O 对输出文件进行指令优化
- -o 输出文件,可执行文件
- -I 指定头文件,大写的i 从-I 开始 是链接内容,先前是编译内容
- -L 指定库文件的位置
- -l 指定使用哪个库文件 小写的L
编译过程
- 预编译
- 编译
- 链接,动态链接 / 静态链接
补充
- 设计一个函数,返回两个形参相加的结果
- 将其转化为一个静态库
- 首先进行编译:clang -g -c add.c add.c为源文件的名字
- .c 文件 编译后 生成 .o 文件
- 生成 静态库 libtool -static -o libmylib.a add.o
- libmylib.a前三个字母lib是库文件的要求,后面是自主设定的文件的名字,.a表明 这是一个 静态文件,add.o 是输入文件
- 第三方文件 使用 先前生成的第三方库,使用双引号 引入 第三方库 的名字,需要在使用命令进行编译时,指定 第三方库文件的路径
- 例子:clang -g -o testlib testlib.c -I . -L . -lmylib
- -I 和 -L 均指定当前文件夹下
- -lmylib 实际使用的时候 需要删除前三个字母 (lib) libmylib.a ,使用-l 替代