实验二_shell和GCC编程2.pdf

实验二_shell和GCC编程2.pdf

ID:52241187

大小:263.84 KB

页数:7页

时间:2020-03-25

实验二_shell和GCC编程2.pdf_第1页
实验二_shell和GCC编程2.pdf_第2页
实验二_shell和GCC编程2.pdf_第3页
实验二_shell和GCC编程2.pdf_第4页
实验二_shell和GCC编程2.pdf_第5页
资源描述:

《实验二_shell和GCC编程2.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二Shell和GCC编程一、实验目的1.学习和掌握shell编程的的基本和常用的方法;2.学习和掌握GCC(G++)编程3.学习MakeFile文件的编写和Make命令的使用二、准备知识1.Shell编程从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用Shell脚本编程,完成更加复杂的操作。在LinuxGUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修功课之一。Li

2、nux的Shell种类众多,常见的有:BourneShell(/usr/bin/sh或/bin/sh)、BourneAgainShell(/bin/bash)、CShell(/usr/bin/csh)、KShell(/usr/bin/ksh)、ShellforRoot(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种就足够了。在本实验中,我们关注的重点是Bash,也就是BourneAgainShell,由于易用和免费,Bash在日常工作中被广泛使用;同时Bash也是大多数Linux系统默

3、认的Shell。在一般情况下,人们并不区分BourneShell和BourneAgainShell,所以,在下面的文字中,我们可以看到#!/bin/sh,它同样也可以改为#!/bin/bash。2.GCC和G++gcc和g++分别是GNU的c&c++编译器,gcc/g++在执行编译工作的时候,总共需要4步:1)预处理(预编译,Preprocessing):在预处理过程中,对源代码文件中的文件包含(include)、预编译語句(如宏定义define等)进行分析处理,生成.i的文件[预处理器是cpp]。2)编译(Compilation),-c:将预处理后的文件转换成汇编语言,

4、生成文件.s[编译器是egcs]。3)汇编(Assembly),由汇编变为目标代码(机器代码),生成.o的文件[汇编器是as]4)连接(Linking),-o:连接目标文件生成可执行文件,在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置[链接器ld]。1)编译选项-E:只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.例子用法:gcc–Ehello.c>pianoapan.txt-S:只激活预处理和编译,就是指把文件编译成为汇编代码。例子用法Gcc–Shello.c,将生成.s的汇编代码,你可以用文本编辑器察看-c:只激活预处理,编译,和汇编,也

5、就是他只把程序做成obj文件例子用法:gcc-chello.c,生成.o的obj文件。-ofile:连接目标文件生成可执行文件,缺省的时候,gcc编译出来的文件是a.out例子用法:gcchello.c–ohellog++hello.cpp–ohello-Idir:将指定目录加到头文件目录中;优先于默认路(/usr/include/);-Ldir:指定附加库的位置(目录),默认/usr/lib/-lname:在连接时,装载名字为“libname.a”的函数库,该函数库位于系统默认的目录或者由-L选项确定的目录下。e.g.,-lm表示连接名为“libm.a”的数学函数库。-

6、g:产生调试信息;-v:显示gcc的版本号;-W:控制警告信息;-O:优化程序,提高运行速度,减小程序的大小;…,gcc有超过100个的编译选项,在此不再一一列举2)文件扩展名在使用GCC的过程中,对一些常用的扩展名一定要熟悉,并知道其含义。.c:C语言源代码;.s:汇编语言源代码;.cpp:C++语言源代码;.h:预处理头文件;.o:编译后的目标文件;.a,.so:编译后的静态、动态库代码;3.Make和MakeFile文件无论是在linux还是在Unix环境中,make都是一个非常重要的编译命令和项目管理工具。利用make工具,我们可以将大型的开发项目分解

7、成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大提高项目开发的效率。Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile文

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。