1.GCC指令的一般格式
gcc[参数]要编译的文件[参数][目标文件]
例4.9 设计一个程序,要求把输入的百分制的成绩转换成五级制输出。输入成绩大于等于90分,显示“优秀”;若成绩介于80~90分,显示“良好”;若成绩介于70~80分,显示“中等”;若成绩介于60~70分,显示“及格”;若成绩小于60分,显示“不及格”。
步骤1:编辑源程序代码
打开文件:vi 4-9.c
在4-9.c文件中输入以下程序代码:
步骤2:用gcc编译程序。
gcc 4-9.c –o 4-9
步骤3:运行程序
./4-9
2.GCC编译流程
GCC编译流程如图4.2所示。
图4.2 GCC编译流程
例4.10 设计一个程序,要求输入两个整数,求和输出。通过使用GCC的参数,控制GCC的编译过程,了解GCC的编译过程,进一步感受GCC的灵活性。
步骤1:编辑源程序代码。
打开文件:vi 4-10.c(www.xing528.com)
在4-10.c文件中输入以下程序代码:
步骤2:预处理阶段。
gcc 4-10.c -o 4-10.i -E
vim 4-10.i
步骤3:编译阶段。
gcc 4-10.i -o 4-10.s -S
vim 4-10.s
步骤4:汇编阶段。
gcc 4-10.s -o 4-10.o -c
步骤5:链接阶段。
Linux系统把printf和scanf函数的实现,都放在了libc.so.6的库文件中。在没有参数指定时,GCC到系统默认的路径“/usr/lib”下查找,链接到libc.so.6库函数中去,这样就有了printf和scanf函数的实现部分。把程序中一些函数得以实现,这是链接阶段的工作。
完成链接后,GCC就可以生成可执行程序文件。
注意:GCC在编译的时候默认使用动态链接库,编译链接时并不把库文件的代码加入可执行文件中,而是在程序执行的时候动态加载链接库,这样可以节省系统开销。
scanf函数说明如表4.4所示。
表4.4 scanf函数
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。