您的位置:首页 > 其它

GCC使用基本方法汇总

2013-02-24 11:50 288 查看
虽然用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

以上两种方法相比较,第一种方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: