网站可以自己做,试百客 专业做试用的网站,建筑工程网库,描述建设一个网站的基本步骤gcc/g同理
编译器运行过程
1. 预处理#xff08;进行宏替换)
gcc -E a.c -o a.i
预处理后还是c语言
-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
告诉gcc#xff0c;从现在开始进行程序的翻译#xff0c;将预处理工作做完停下 2. 编译#x…gcc/g同理
编译器运行过程
1. 预处理进行宏替换)
gcc -E a.c -o a.i
预处理后还是c语言
-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
告诉gcc从现在开始进行程序的翻译将预处理工作做完停下 2. 编译生成汇编)
gcc -S a.o -o a.s
-S 编译到汇编语言不进行汇编和链接
从现在开始进行程序的翻译将编译工作做完就停下可以从.i开始也可以从.c开始 3. 汇编生成机器可识别代码
将汇编语言翻译成二进制文件目标文件
gcc -c a.s -o a.o//.o文件不能执行
-c 编译到目标代码
从现在开始进行程序的翻译,将汇编工作做完就停止 4. 连接生成可执行文件或库文件)
gcc a.o –o a
将可重定位目标二进制文件和库进行连接形成可执行程序 ./[生成的目标文件]
./a
执行可执行文件
库的概念
动态库不能缺失一旦对应动态库缺失影响的不知一个程序会导致很多程序都无法运行 在编译器使用静态库进行静态链接时会将自己的方法拷贝到目标程序中该程序以后不用再依赖静态图 linux中 .so动态库 .a 静态库
Windows中 .dll动态库 .lib静态库
在linux中编译形成可执行程序默认采用的是动态链接
Linux中静态链接指令gcc a.c -o a_static -static
安装静态库
C/C静态库
yum install -y glibc-static//C静态库
yum install -y libstdc-static//C静态库 gcc格式
格式 gcc [选项] 要编译的文件 [选项] [生成的目标文件]
gcc选项
-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
告诉gcc从现在开始进行程序的翻译将预处理工作做完停下
-S 编译到汇编语言不进行汇编和链接
从现在开始进行程序的翻译将编译工作做完就停下可以从.i开始也可以从.c开始
-c 编译到目标代码
从现在开始进行程序的翻译,将汇编工作做完就停止
-o 文件输出到文件 -o后面永远跟着可执行程序文件 -static 此选项对生成的文件采用静态链接
-g 生成调试信息。GDB 调试器可利用该信息。要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项进入debug模式
-shared 此选项将尽量使用动态库所以生成文件比较小但是需要系统由动态库.
-O0 -O1 -O2 -O3 编译器的优化选项的4个级别-O0表示没有优化,-O1为缺省值-O3优化级别最高
-w 不生成任何警告信息。
-Wall 生成所有警告信息。