>>>>使用GCC编译与GDB调试
一:VMwareTools安装过程1.sudoapt-getupdate2.sudoapt-getdist-upgrade
3.3.sudoapt-getinstallbuild-essential
4.sudoapt-getinstalllinux-headers-3.0.0-29-generic-pae5.Ubuntu与windows间的文件共享
(选择VM中设置,选项,共享文件夹,添加路径,如果不能在Ubuntu下的/mnt/hgfs下找到共享文件夹还需安装Sudoapt-getinstatllopen-vm-dkmsSudomount-tvmhgfs.host://mnt/hgfs
二:C编程中相关文件后缀
.a静态库(archive
.cC源代码(需要编译预处理).hC源代码头文件
.iC源代码(不需编译预处理).o对象文件.s汇编语言代码.so动态库
三:Gcc的执行过程
gccandg++分别是gnu的c&c++编译器gcc/g++在执行编译工作的时候,总共需要4步
>>>>>>>>
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld]
四.常用编译命令选项
假设源程序文件名为test.c。1.无选项编译链接用法:#gcctest.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。2.选项-o
用法:#gcctest.c-otest
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。3.选项-E
用法:#gcc-Etest.c-otest.i
作用:将test.c预处理输出test.i文件。4.选项-S
用法:#gcc-Stest.i
作用:将预处理输出文件test.i汇编成test.s文件。5.选项-c
用法:#gcc-ctest.s
作用:将汇编输出文件test.s编译输出test.o文件。6.无选项链接
用法:#gcctest.o-otest
作用:将编译输出文件test.o链接成最终可执行文件test。7.选项-O
用法:#gcc-O1test.c-otest
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
五.多源文件的编译方法