GCC使用基本方法汇总

来源:互联网 发布:grapher软件绘图教学 编辑:程序博客网 时间:2024/04/20 06:07

          虽然用linux断断续续也差不多三年了,但是却很少在其下编写c程序,现在也处于学习gcc的处级阶段,现将所学写成博客供大家参考学习,同时也欢迎高人指点,如有不对,恳请指出。

          初学gcc,最好还是从命令行开始,这样可知程序的运行步骤,方便以后更深层次的学习。通常程序的运行都会经过编写、预处理、编译、汇编、链接这几个步骤,下面便就这几个步骤来一一说明。

以下实例都以test.c举例说明

1.无选项的编译链接

#gcc test.c

说明:将test.c预处理、编译、汇编、链接生成可执行文件,默认生成为a.out可执行文件。


2.指定可执行文件名称

#gcc test.c -o test

说明:使用-o参数指定最后生成的可执行文件名称。


3.选项-E

#gcc -E test.c -o test.i

说明:使用-E参数表明gcc只进行预处理便结束,不再接着进行编译等后续过程了。


4.选项-S

#gcc -S test.i

说明:使用-S参数表明gcc编译后便结束,不再进行汇编等后续过程。通常都是用.s文件替代原来的.c和.i文件


5.选项-c

#gcc -c test.s

说明:使用-c参数表明gcc编译或汇编后便结束,不再进行链接过程。通常都是用.o文件替代..c,.i和.s文件


6.-选项-o

#gcc test.o -o test

说明:使用-o参数表明gcc将会进行链接并生成最后的可执行文件。


7选项-O

#gcc -O1 test.c -o test

说明:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长


8.选项-v

#gcc -v test.c -o test

说明:使用-v显示编译时的详细信息,编译器的版本,编译过程等。


多个源文件一起编译的方法

有两种编译方法:
假设有两个源文件分别为test1c和test2.c

1. 从编译阶段便一起
用法:#gcc test1.c test2.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。

2. 先单独编译各个源文件,然后对编译后生成的目标文件进行链接。
用法:
#gcc -c test1.c //将test1.c编译成test1.o
#gcc -c test2.c   //将test.c编译成test2.o
#gcc -o test1.o test2.o -o test //将test1.o和test2.o链接成test

以上两种方法相比较,第一种方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。



原创粉丝点击