本文主要介绍gcc的基本使用方法,首先掌握基本使用,后期掌握高级指令(如-lpthread等库的连接)。
开学时最好从命令行开始。 这样,您就可以熟悉创建、编译、调试和运行程序的整个过程。 写程序需要vi/vim (我个人认为vim比vi更容易使用。 )或其他编辑器中编写。
使用gcc命令进行编译。 继续学习首先要熟悉gcc命令的使用方法。
gcc命令提供了非常多的命令选项,但并不熟悉一切。 初学时掌握一些常用的东西就可以了。 为了不让选择太多而破坏学习信心,之后请慢慢学习其他选项。一. 常用编译命令选项
将源程序的文件名设为test.c
1 .无选项编译链接
使用方法: #gcc test.c
作用:预处理、汇编、编译、链接test.c形成可执行文件。 这里没有指定输出文件,默认输出为a.out。 成功编译后,可以看到生成了a.out的文件。 在命令行中键入./a.out运行程序。 /在当前目录中,指示a.out是可执行文件名称。
2 .选项-o
用法: #gcc test.c -o test
作用:预处理、汇编、编译、链接test.c形成可执行文件test。 -o选项指定输出文件的文件名。 键入./test运行程序。
3 .选项-E
用法: #gcc -E test.c -o test.i
作用:将test.c预处理输出到test.i文件。
4 .选项-S
用法: #gcc -S test.i
作用:预处理输出文件test.i合并为test.s文件。
5 .选项-c
用法: #gcc -c test.s
作用:将程序集输出文件test.s编译为test.o文件并输出。
6 .无可选链接
用法: #gcc test.o -o test
角色:将编译输出文件test.o链接到最终可执行文件test。 键入./test运行程序。
7 .选项-O
用法: #gcc -O1 test.c -o test
角色:使用编译优化一级编译器。 级别为1到3,级别越高优化效果越好,但编译时间越长。 键入./test运行程序。
编译使用C std库的程序
用法: #gcc test.cpp -o test -lstdc
角色:将test.cpp编译链接到test可执行文件。 -lstdc直流指定链接std c库。二. 多源文件的编译方法
如果有多个源文件,则基本上有两种编译方法。
假设您有两个源文件: test.c和testfun.c]
1 .汇总编译多个文件
用法: #gcc testfun.c test.c -o test
作用:分别编译testfun.c和test.c并链接到test可执行文件。
2 .分别编译每个源文件,并将其链接到编译后输出的目标文件。
使用方法:
#将#gcc-ctestfun.c//testfun.c编译为testfun.o
#将#gcc-ctest.c//test.c编译为test.o
# gcc-otest fun.o test.o-o将test//test fun.o和test.o链接到test
与上述两种方法相比,第一种方法需要在编译时重新编译所有文件,但第二种方法只能重新编译更改的文件,而不需要重新编译未更改的文件。