一、程序编译的过程
生成.s文件
↑
源程序→预处理器→编译器→汇编器→链接器→可执行文件
↓ ↓
生成.i/.ii文件 生成.o文件(二进制、机器语言)
二、gcc编译器指令
gcc -c hello.c 生成hello.o
gcc -S hello.c 生成hello.s
gcc -O 文件 对文件进行优化处理
time ./文件.out 测程序执行所需要的时间
gcc -DPI=3.1415 -o hello hello.c 在程序外对PI进行宏定义,并将生成重命名为hello
gcc -UPI=3.1415 -o hello hello.c如上,取消对PI的宏定义
gcc 文件 -I 目录 搜索目录中的内容并对文件进行编译
三、数据库
1、静态数据库(.a)的建立
(1)gcc -c 文件1.c 文件2.c 文件3.c
目的生成目标文件(.o)
(2)ar rcs 静态库名 目标文件1.o 目标文件2.o 目标文件3.o
静态库名:libname.o修改name其余不变
rc:静态库不存在时便创建该文件库
s:更新文件库
(3)静态数据库的使用
gcc -o file file.c -L. -lname
2、动态数据库(.so)的建立
(1)gcc -shared -fPIC -o 动态库名 源文件.c
(2)动态数据库的使用
gcc 源文件.c ./动态库名 -o 可执行文件名
3、ar -t 数据库名 查看指定数据库中包含哪些文件
ar -d 数据库名 add.o 从数据库中删除add.o
ar-xv 数据库名 add.o 从库中提取出add.o不删掉原来的文件