创建嵌入式系统开发环境ppt课件_第1页
创建嵌入式系统开发环境ppt课件_第2页
创建嵌入式系统开发环境ppt课件_第3页
创建嵌入式系统开发环境ppt课件_第4页
创建嵌入式系统开发环境ppt课件_第5页
已阅读5页,还剩136页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、创建嵌入式系统开发环境第3章 主要内容1、Linux与嵌入式Linux概述2、Windows下的Linux环境软件-cygwin3、Linux文件系统构造4、Linux常用命令5、Linux文本编辑器vi6、Linux编译器gcc及编译工具7、交叉编译工具的创建1、Linux操作系统的组成2、Linux操作系统的内核版本3、嵌入式LinuxLinux与嵌入式Linux概述 Linux操作系统的组成LINUX的内核:含有设备驱动程序、系统效力等程序,具有中断处置、进程调度、原语管理等功能。LINUX SHELL:Shell是系统的用户界面,它是一个命令解释器,它解释用户输入的命令,并且把它们送到

2、内核。提供了用户与内核进展交互操作的一种接口。LINUX文件系统: 是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前许多的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。LINUX运用系统:规范的Linux系统都有一整套称为运用程序的程序集,包括文本编辑器、编程言语、X Window、办公套件、Internet工具、数据库等。Linux内核采用双树构造:一棵树是稳定树,主要用于发行;另一棵树是非稳定树或开发树,用于产品开发、改良、测试。源代码版本序号方式:为x.y.zz构造,其中x为主版本号,代表中心的改动晋级;y为次版本号,表示功能性的改动

3、;zz为末版本号,表示BUG的改动。其中x介于0到9之间,yy和zz那么介于0到99之间。双树区分:对于稳定树来说,y是偶数;对于开发树来说,y是比相应稳定树大1的奇数。例2.4.18等为稳定内核版本。Linux的内核版本嵌入式Linux操作系统概述一、嵌入式Linux操作系统嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。由一个内核及一些根据需求进展定制的系统模块组成。其kernel很小,普通只需几百kB左右。即使加上其它必需的模块和运用程序,所需的存储空间也很小。它具有多义务、多进程的系统特征,有些还具有实时性 。嵌入式Linux需求移植:对于嵌入式Linux,普通都不

4、是原封不动地运用,而是要思索各种详细系统的特点,有针对性地对Linux内核加以裁减、修正和补充。下面是嵌入式Linux 的根本表示图:BootLoader内核初始化设备驱动程序文件系统网络模块Boot LoaderBoot Loader:担任Linux 内核的启动,它用于初始化系统资源,包括SDRAM。这部分代码用于建立Linux 内核运转环境和从Flash 中装载初始化ramdisksteppingstone。内核初始化内核初始化:Linux 内核的入口点是start_kernel函数。它初始化内核的其它部分,包括捕获异常,IRQ 通道,调度,设备驱动,标定延迟循环,最重要的是可以fork

5、创建“init进程,以启动整个多义务环境。系统调用函数/捕获函数:在执行完“init程序后,内核对程序流不再有直接的控制权,以后,它的作用仅仅是处置异步事件(例如硬件中断)和为系统调用提供进程。设备驱动设备驱动:设备驱动占据了Linux 内核很大部分。同其它操作系一致样,设备驱动为它们所控制的硬件设备和操作系统提供接口。设备驱动包括:字符型设备驱动,块设备驱动,网络设备驱动文件系统:Linux 最重要的特性之一就是对多种文件系统的支持。如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB.这种特性使得Linux 很容易地同其它操作系统共存。文件系统的概念使得用户可以查看存储设

6、备上的文件和途径而无须思索实践物理设备的文件系统类型。Linux 透明的支持许多不同的文件系统,将各种安装的文件和文件系统以一个完好的虚拟文件系统的方式呈现给用户。5.3.1 Linux文件系统概述文件构造是文件存放在磁盘等存贮设备上的组织方法。文件构造主要表达在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。linux运用规范的目录构造,在安装的时候,安装程序就曾经为用户创建了文件系统和完好而固定的目录组成方式,并指定了每个目录的作用和其中的文件类型 Linux目录构造Linux与DOS文件系统区别Linux文件系统是一个目录树构造,最上层是根目录,其他的一切目录都是从根目录

7、出发而生成的。 Dos文件系统也采用目录树的构造,但DOS以每个分区为树根,有几个分区就有几个树型构造 。/sbin /usr /etc /root /lib /hom /mnt/ C D ELinux下,任何一个目录都可以是一个分区。因此,在分区时,必需将一个分区安装在树根下面。Linux不仅将分区安装为一个目录,而且还将一切的硬件设备都安装成一个个设备文件。对设备的操作是经过文件的操作完成的。Linux文件系统构造“/根目录: 包含根本的操作系统和维护工具。这个目录的文件可以启动系统,并且需求的话,可以完成紧急维护和修复的功能。“/root目录: 系统管理员也叫超级用户或根用户的Home目

8、录。“/usr目录: 包含一切的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改动的。这个目录也包含他的Linux发行版本的主要的运用程序。/usr/bin, /bin:普通性执行程序放置的地方/usr/sbin, /sbin:系统管理员常用的指令集“/home目录: 包含用户的文件:参数设置文件、个性化文件、文档、数据、缓存数据等。这个目录在系统晋级时应该保管。“/mnt目录: 普通用降暂时挂载别的文件系统,如FAT32,NTFS等“/bin目录: 系统启动时需求的执行文件二进制,这些文件可以被普通用户运用。“/sbin目录: 系统执行文件二进制,这些文件不计划被普通用户运用。普通

9、用户依然可以运用它们,但要指定目录。“/etc目录: 操作系统的配置文件目录。/etc/rc.d/init.d:系统开机的时候载入的 效力程序的scripts 的放置点“/dev目录: 设备文件目录。LINUX下设备被当成文件,正常情况下,设备会有一个独立的子目录。这些设备的内容会出如今独立的子目录下。“/lib目录:根文件系统目录下程序和中心模块的共享库。“/var目录: 存放在操作中被改动的文件:假脱机文件、记录文件、加锁文件、暂时文件和页格式化文件等。“/boot目录: 用于启动加载程序的文件。当计算机启动时假设有多个操作系统,有能够允许他选择启动哪一个操作系统,这些文件首先被装载。这个

10、目录也会包含Linux核紧缩文件 vmlinuz。但Linux核也可以存在别处,只需配置LILO并且LILO知道Linux核在哪儿。用于启动加载程序LILO或GRUB“/opt目录: 可选的运用程序。譬如,REDHAT 5.2下的KDE REDHAT 6.0下,KDE放在其它的X-WINDOWS运用程序中,主执行程序在/usr/bin目录下“/tmp目录 :暂时文件。该目录会被自动清理干净。“/lost+found目录: 在文件系统修复时恢复的文件。Linux的文件类型文件名Linux文件的名字可以由字母字符、下划线和数字组成,也可以加上句号和逗号。文件名的第一个字符不能是数字,短划线、句点和

11、星号等被系统用作特殊符号的其他符号。用“.开场的文件为隐藏文件,称为“点文件。可用“file 文件名来查看文件类型。(1)、紧缩的和归档的文件.bz2 运用 bzip2 紧缩的文件 . gz 运用 gzip 紧缩的文件.tar 运用 tartape archive,磁带归档的简写紧缩的文件,又称 tar 文件.tbz 用 tar 和 bzip 紧缩的文件.tgz 用 tar 和 gzip 紧缩的文件.zip 运用 ZIP 紧缩的文件,在 MS-DOS 运用程序中常见。多数为 Linux 紧缩的文件运用 gzip 紧缩,因此 Linux 文件中的 .zip 归档较少见。 2、 文件格式.au 音

12、频文件.gif GIF 图像文件.html/.htm HTML 文件.jpg JPEG 图像文件.pdf 文档的电子映像;PDF 代表 Portable Document Format可移植文档格式 .png PNG 图像文件Portable Network Graphic 的简写,可移植网络图形 .ps PostScript 文件,为打印而格式化过的文件.txt 纯 ASCII 文本文件.wav 音频文件.xpm 图像文件(3)、系统文件. .conf 一种配置文件。配置文件有时也运用 .cfg。 .lock 锁lock 文件;用来断定程序或设备能否正在被运用.rpm Red Hat 用来安

13、装软件的软件包管理器文件(4)、编程和脚本文件.c C 程序文语的源码文件.cpp C+ 程序文语的源码文件.h C 或 C+ 程序文语的头文件.o 程序的对象文件.pl Perl 脚本.py Python 脚本 .so 库文件.sh shell 脚本 .tcl TCL 脚本常用的Linux文件系统 Linux系统中心支持十多种文件系统类型: ext、ext2、ext3、CRAMFS、msdos、umsdos、Vfat、NTFS等。 minix linux:最早运用的文件系统 ext2 linux和ext3 linux:目前常用的文件系统 nfs: 网络文件系统 cramfs: 只读文件系统主

14、要内容1、Linux外壳shell2、Linux常用命令Linux常用命令Linux外壳的功能:shell是一种命令解释器,提供了用户和操作系统之间的交互接口。对用户输入的命令,由外壳进展解释,然后将解释的命令送到操作系统去执行。shell可以执行Linux的系统命令,也可以执行运用程序。用户还可以利用外壳编程,执行复杂的命令程序。Linux有多种shell,为用户提供选择。Linux外壳shell常用的shell:bash、ash、csh、ksh、tcsh等。bash是Linux默许运用的shell,它由Brian Fox 和 Chet Ramey共同完成的。 bash是Bourne Aga

15、in Shell的缩写,内部命令有40个。Bash有如下特点:1运用方向键查阅已运用过的命令行。2补全命令行,按Tab键。3可以运用通配符“?、“*。4有管道命令“|,用“|可将多个命令衔接起来执行,前面命令的输出是后者的输入。1、ls-文件及子目录名列表语法格式:ls option file 如:ls 以默许方式显示当前目录下的子目录和文件。ls a 显示一切文件,包括隐藏文件。ls l 以默许方式显示文件属性,包括大小、日期、一切者、权限及称号。 ls F以默许方式显示文件及类型,以“/结尾的为目录,以“*结尾的为可执行文件,以“结尾的为符号链接。Linux常用命令属性文件数量一切者文件属

16、性符号 格式:arwxrwxrwx n owner group size date name 例如:drwxr-xr-x 2 root root 4096 2021-3-3 bina:文件性质,可以是:d:目录文件; n:l:符号链接文件; (1)对文件指硬衔接数b:块类型设备文件; (2)对目录指含的子目录数c:字符型设备文件。r:read,读w:write,写x:execute,执行红色:文件拥有者权限黑色:文件组拥有者权限蓝色:其他用户的权限13 chmod更改访问权限chmod用于改动文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式

17、的文字设定法;另一种是包含数字的数字设定法。 1. 文字设定法 语法:chmod who + | - | = mode 文件名例如: chmod g+r,o+r example操作对象who可是下述字母中的任一个或者它们的组合: u 表示“用户user,即文件或目录的一切者。 g 表示“同组group用户,即与文件属主有一样组ID的一切用户。 o 表示“其他others用户。 a 表示“一切all用户。它是系统默许值。 操作符号可以是: + :添加某个权限。 - :取消某个权限。 = :赋予给定权限并取消其他一切权限设置 mode 所表示的权限可用下述字母的恣意组合: r 可读、 w 可写、

18、x 可执行 其他省略语法:chmod who + | - | = mode 文件名文件名:以空格分开的要改动权限的文件列表,支持通配符。 在一个命令行中可给出多个权限方式,其间用逗号隔开。例如: chmod g+r,o+r example % 使同组和其他用户对文件example 有读权限。2. chmod数字设定法我们必需首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限, 2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是ugo。 例如,假设想让某个文件的属主有“读/写二种权限,需求把4可读+2可写6读/写。 数字设定法的普通

19、方式为: 语法:chmod mode 文件名 比如 chmod 777 example;%表示用户同组用户其他用户对文件example具有可读可写执行的权限比如 chmod 755 example;%表示用户对文件example具有可读可写执行的权限,同组用户其他用户只具有执行和可读的权限3、cd-改动任务目录目录切换语法格式:cd directory如:cd dir 切换到当前目录下的dir 目录。cd / 切换到根目录。cd . 切换到上一级目录。cd /abc切换到当前目录下的某目录下的abc目录。几个符号目录: “/:根目录“.:本级目录;“.:上级目录4、cp-复制文件和目录语法格式

20、:cp 源文件及途径 目的文件及途径 cp -r 源目录 目的目录如:cp file1 file2 将文件file1复制成file2。cp /root/file .将/root目录下的文件file 复制到当前目录下,名字仍为file 。 cp file /usr 将当前目录下的文件file 复制到/usr目录下,名字仍为file 。cp r dir1 dir2 将dir1下的文件和目录,全部复制到dir2目录下。5、 rm-删除文件 语法格式:rm filename如:rm file1删除当前目录下的file1文件rm *.c删除当前目录下的一切c文件rm abc.*删除当前目录下主文件名为a

21、bc的一切文件。rm *删除当前目录下的一切文件6、mv-挪动或更改文件、目录名语法格式:mv 源地址 目的地址如:mvfile1 file2将文件file1更改为file2mvfile1 dir2将文件file1挪动到目录dir2下,文件名仍为file1。mvdir1 dir2将目录dir1更改为dir2。7、建立目录语法格式:mkdir option目录名如:mkdir dir1在当前目录下建立新目录dir1。mkdir dir1/dir2 在当前目录下的dir1目录下建立新目录dir2。mkdir -p dir3/dir4 在当前目录下先建立新目录dir3 ,然后在dir3下建立新目录d

22、ir4。8、删除目录语法格式:rmdir 目录名 rm r 目录名如:rmdir dir1删除目录dir1dir1下必需为空。rm r dir2删除目录dir2及其子目录下一切文件。2、查看文件内容命令1cat-延续显示格式:cat filename如:cat file1以延续方式显示file1内容cat file2 | more以分页方式显示file2内容2more-分页显示格式:more filename按空格查看下一页,按回车下一行。3less-分页并且可往回查看格式:less filename按“空格查看下一页;按“b查看上一页;按“回车下一行;按“q键退出。10、ln-文件链接1硬链

23、接语法格式:ln 源文件名及途径 目的文件名及途径如:ln file1 dir2/file2将当前目录下file1,链接到当前目录下的dir2下,名为file2ln dir3/file3 file4将当前目录下的dir3目录下的file3,链接到当前目录下,名为file4删除方法:用rm命令2符号链接相当于Win2k的快捷方式语法格式:ln s 源文件名及途径 目的文件名及途径如:ln -s file1 dir2/file2 将当前目录下的文件file1,链接到当前目录下的dir2目录下,文件名为file2。ln s dir3/file3 file4将当前目录下dir3目录下的文件file3,

24、链接到当前目录下,文件名为file4。删除方法:用rm命令11、 tar-紧缩与解压语法格式: tar -参数(必选)+参数(可选) 目的文件 (.tar .gz) 源文件/目录 主选项c 创建档案文件r 追加文件到创建好的档案文件末尾t 列出档案文件包含的文件u 更新档案文件,假设有那么覆盖,没有那么追加末尾x 释放档案文件辅助选项b 磁带机公用 块大小20(20*512bytes)f 必需选项k 紧缩/解紧缩过程中保管同名文件m 复原文件时,修正文件时间为当前时间M 创建多卷文件v 显示处置信息w 每一步都要求确认z 用gzip紧缩/解紧缩文件11、 tar-紧缩与解压 1紧缩文件语法格式

25、: tar cfzv 目的文件途径 被紧缩的目录如:tar cfzv dir1/file1.tgz dir2 将当前目录下的dir2目录下的一切文件,紧缩为文件file.tgz,存放在当前目录下的dir1目录下。阐明:选项4个字母cfzv,不分次序。2解压文件tar xfzv 被解压的文件途径 保管的目录tar xfzv file.tgz dir1将文件file.tgz 解压,保管到当前目录下的dir1目录下。阐明:选项4个字母xfzv,不分次序实例#tar -cf mydir.tar mydir #将mydir目录下一切文件打包到mydir.tar#tar -uf mydir.tar myd

26、ir#更新mydir.tar#tar -tf mydir.tar#显示mydir.tar内的文件#tar -cf /dev/fd0 mydir#用设备称号作档案名#tar -xf /dev/fd0 # 恢复软盘中的文件12、磁盘、目录挂接与卸载1mount-挂接语法格式:mount option 被挂接的设备 挂接点mount IP地址:被挂接的目录 挂接点option:文件类型:二进制、文本、可执行等如:mount -t yaffs /dev/mtdblock/0 /mnt 把/dev/mtdblock/0 装载到 /mnt 目录mount -t nfs :/frien

27、dly-arm/root /mnt 将nfs 效力的共享目录/friendly-arm/root 挂接到/mnt 目录2umount-卸载语法格式:umount 被挂接目录或挂接点挂载文件系统将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。当一个机器上装了多个操作系统,比如在Linux任务时需访问Windows下的C盘,那么需求在Linux上挂载采用mount命令挂载,umount命令卸载。为防止每次系统启动时都挂接,可写入相应命令到/etc/fstab。加挂FAT32系统首先进入/mnt目录,新建所挂接分区对应目录,例winDmoun

28、t t vfat o iocharset=cp936 /dev/hda2 /mnt/winD 其中,hda2为D盘对应的设备文件,可经过“fdisk l命令或“系统工具/硬件阅读器中查看各盘对应的设备文件。加挂ntfs系统-t ntfs加挂U盘上的文件系统mount t vfat o iocharset=cp936 /dev/sda1 /mnt/udiskpwd(printworkingdirectory)功能阐明:显示任务目录。语法:pwd-help-version补充阐明:执行pwd指令可立刻得知您目前所在的任务目录的绝对途径称号。参数:-help在线协助。-version显示版本信息。例

29、子:/root# pwd (回车) /root# /rootexport功能阐明:设置或显示环境变量。例子: /root# export lib_dir=/usr/lib/bin语法:export-fnp变量称号=变量设置值补充阐明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修正或删除环境变量,供后续执行的程序运用。export的效能仅及于该此登陆操作。参数:-f代表变量称号中为函数称号。-n删除指定的变量。变量实践上并未删除,只是不会输出到后续指令的执行环境中。-p列出一切的shell赋予程序的环境变量。12、shell运用手册-man对于Linux的命令,

30、随时可以运用随机所带的运用手册获得协助。获得协助方法:man 命令名如:mancp 13、Linux运用程序的协助-help对于Linux的运用程序,可以运用各个运用的协助功能-help,获得协助。获得协助方法:运用程序名 -help如:gcc -helpLinux命令大全linux.chinaitlab/special/linuxcom/3.2 Windows下的Linux环境软件-Cygwin主要内容1、 Cygwin 软件功能2、 Cygwin 软件下载3、 Cygwin 软件安装3.2.1 Cygwin软件功能Cygwin是一个在Windows平台上运转的、模拟Linux环境的软件,并

31、且该软件也将GNU工具移植到了Win32系统上。可以将Cygwin了解成一个DLL.安装了Cygwin后,启动Cygwin,Windows系统就模拟出一部Linux主机,用户便可像在纯Linux下一样运用Linux及其各种工具软件、运用软件等。工具包括Bash shell等常用工具.该软件对于刚开场运用Linux的人来说,是极好的选择,用户可以方便地回到Windows下查看文件和目录构造,也可以在Windows下进展各种文件操作,如复制删除文件、挪动文件、解压文件、查找文件等。3.2.2 Cygwin软件下载Cygwin是Cygwin solutions公司开发的自在软件,可以到公司网站上免费

32、下载,包括Cygwin和各种开发工具的源代码程序 。Cygwin solutions公司的网址是: cygwin/。 在网页上单击“Install Cygwin Now,会先下载一个叫做setup.exe的安装程序,运转Cygwin目录下的“setup.exe,会出现一个下载安装的界面.有三项:“Intall from Internet、“Download without Intalling、“Intall from Local Directory,普通应选择第二项,先下载,再安装,不进展直接安装。 有三项:“Intall from Internet、“Download without Int

33、alling、“Intall from Local Directory,普通应选择第二项,先下载,再安装,不进展直接安装。 1、启动安装再次运转Cygwin目录下的“setup.exe,选择第三项“Intall from Local Directory,进展本地安装。P613.2.3 Cygwin软件安装2、选择安装、运用范围当出现如下界面时,1需求选择安装目录,普通不安装在C盘,留意磁盘空间应不少于2GB;2选择运用范围和文本文件类型,选择默许项:“All Users、“Unix 即可。3、选择安装软件包每种软件包有“Default、“Install、“Reinstall、“Uninstal

34、l4种安装选择,可以根据需求逐一选择。普通可以做如下选择: 1选择All 为“Default2对如下软件包选择“Install:Admin:根本效力工具 Archive:紧缩、解压工具 Base:根本的Linux工具 Libs:系统库文件 Net:网络工具 Untils:适用工具Shall:外壳工具集 Editor:编辑器集3.4交叉编译预备知识1交叉编译器概述交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。留意这里的平台,实践上包含两个概念:体系构造(Architecture)、操作系统(Operating System)。同一个体系构造可以运转不同的操作系统;同样,同一个操作系统

35、也可以在不同的体系构造上运转。举例来说,我们常说的x86 Linux 平台实践上是Intel x86 体系构造和Linux for x86 操作系统的统称;而x86 WinNT 平台实践上是Intel x86 体系构造和Windows NT for x86 操作系统的简称。1、采用交叉编译的主要缘由:多数嵌入式目的机不能提供足够的资源供编译过程运用,因此只好将编译任务转移到高性能的宿主机中进展。2、编译环境:即创建交叉编译工具的编译环境是一个由编译器、衔接器和解释器组成的综合开发环境。3、交叉编译工具链:交叉编译工具链主要包括针对目的系统的编译器 gcc、目的系统的二进制工具binutils、

36、目的系统的规范c库glibc和目的系统的 Linux 内核头文件。3.4交叉编译预备知识3.4交叉编译预备知识我们接下来所要运用的是ARM-Linux2.6平台,阐明我们的体系构造是ARM,而操作系统为Linux2.6而对应的目的平台还有MIPS,SuperH、POWERPC等而所涉及到的目的硬件S3C2410 而言,之所以运用交叉编译是由于在该硬件上无法安装我们所需的编译器,只好借助于宿主机(PC机),在宿主机(PC机)上对即将运转在目的机上的运用程序进展编译,生成可在目的机上运转的代码格式。宿主机普通是一个基于X86架构的计算机,我们统称为i386平台。GNU 工具简介下面引见在嵌入式系统

37、开发中用得最多的GNU 开发工具。GNU 开发工具包括C 编译器GCC,C+编译器G+,汇编器AS,链接器LD,二进制转换工具(OBJCOPY,OBJDUMP),调试工具(GDB,GDBSERVER,KGDB) 和基于不同硬件平台的开发库。在GNU GCC 支持下用户可以运用流行的C/C+言语开发运用程序,满足生成高效率运转代码、易掌握的编程言语的用户需求。这些工具都是按GPL版权声明发布,任何人可以从网上获取全部的源代码,无需运用任何费用。关于GNU 和公共答应证协议的详细资料, 读者可以参看GNU 网站的引见,/home.html。运转于Linux 操作系统下的自在软件GNU

38、 gcc 编译器,不仅可以编译Linux 操作系统下运转的运用程序,还可以编译Linux 内核本身。甚至可以作交叉编译,编译运转于其它CPU上的程序。在这里我们用的是arm-linux-工具链。如arm-linux-gcc和arm-linux-g+主要内容1、vim概述2、vim的启动3、vim的任务方式Linux文本编辑器vimvim概述vim是Linux的全屏幕编辑器,是vi Visual interface的加强型版本,用它可以进展文本文件的编辑、数据文件编辑,也用它做源程序的编辑。类似于Windows/ DOS下的EDIT编辑器。Vim可以执行输出、删除、查找、交换、块操作等众多文本操

39、作。Vim的启动有两种方法:1vim回车启动vim,并且翻开一个新文件。2vimfile回车启动vim,并且翻开file文件,假设file不存在,那么创建file文件。vim的任务方式vim有三种任务方式:命令行方式、文本输入方式、末行方式。一、命令行方式1、命令行方式的功能就是vim以为从键盘输入的是命令,完成各种编辑操作。留意:1在该方式下,从键盘一切输入的命令,都不在屏幕上显示出来;2假设输入的不是合法命令那么响铃报警。二、文本输入方式在该方式下从键盘输入的均作为编辑的内容。 三、末行命令方式在屏幕的末行有“:符号,输入的命令在末行显示,按回车执行命令。二、文本输入方式在该方式下从键盘输

40、入的均作为编辑的内容。文本输入方式进入方法运用一切的“添加文本命令和“改动和交换命令后,均切换到文本输入方式。最常用的是“a命令和“i命令:a:在光标位置后添加文本i:在光标位置前添加文本三、末行命令方式在屏幕的末行有“:符号,输入的命令在末行显示,按回车执行命令。1、进入末行命令方式的方法在命令方式下按“:键,便进入末行命令方式。2、退出末行方式的方法一个末行命令执行完后,便自动回到命令行方式。3、末行方式的功能与命令功能有二:保管文件、退出编辑器。末行方式的命令如下:1保管和写文件命令:w将缓冲区的内容写到文件:w 文件名将缓冲区的内容写到指定文件:w!文件名强迫覆盖写曾经存在的文件2退出

41、编辑器命令:q未修正那么退出,做过修正那么提示保管:q!不保管退出:x保管后退出总做保管 对:q有提示时,假设不保管退出,再进入末行方式,:q!;假设保管退出,可输入Z、Z,或再进入末行方式,:x2、进入命令行的方法1启动Vim时自动进入;2在其它方式时按“ESC键进入。3、命令行命令1退出编辑器Z、Z:保管所编辑的内容,退出vim,前往到shell。2添加文本命令a:在光标位置后添加文本shift+a:在当前行末添加文本i:在光标位置前添加文本shift+i:在当前行前面添加文本o:在当前行下翻开一行添加文本shift+o:在当前行上翻开一行添加文本3块复制命令V/v:块开场Y/y:块终了并

42、复制P/p:块粘贴4删除文本x:删除光标位置的字符d、$:从当前光标位置删除到行尾d、d:删除当前行shift+d:删除当前行的剩余部分5改动和交换命令r:交换一个字符shift+r:交换字符序列c、w:把当前字从光标位置改动到字尾c、e:同上c、b:把当前字从字的开场改动到光标的前一个字符c、$:把一行从光标位置改写到行尾shift+c:同上c、c:改动整行主要内容1、编译器gcc2、编译工具make命令和makefile文件Linux编译器gcc及编译工具3.4.3 Linux编译器gcc p93gcc的是GNU C Compiler 的缩写,由 Richard Stallman开发。是我

43、们这套工具链的主角. 经过多年的开展,gcc不仅仅支持C言语,还支持Adc言语、C+言语、Java言语、pascal言语、COBOL言语等等。变成了GNU Compiler Collection,即GMU编译器集。 gcc对于各种硬件平台都提供了完善的支持。 gcc是GNU组织的免费C编译器。 由gcc编译所生成的代码执行效率较高,平均效率高出20-30%。gcc的功能gcc的整个编译过程,本质上是分四步进展的,每一步完成一个特定的任务,这四步分别是:预处置(也称预编译,Preprocessing)编译(Compilation)汇编(Assembly) 衔接(Linking) 普通来说开发人员

44、要做的只是提供源代码,其他任务都可以由gcc完成. 详细完成哪一步,是由gcc后面的开关选项和文件类型决议的。gcc所包含的工具cc :C编译器cpp :C预处置器。编译器用它来将#include和#define 这类声明在源文件中展开。 g+ :C+编译器 gcc :C编译器 gccbug :一个shell脚本,协助创建有价值的bug报告。 gcov :覆盖测试工具,用来分析在程序的哪里做优化的效果最好。libgcc gcc:的运转时库 libstdc+ :准C+库,包含许多常用的函数。libsupc+ :为C+言语提供支持的库函数。1、命令gcc首先调用cpp进展预处置,在预处置过程中,对

45、源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进展分析。2、接着调用cc进展编译,这个阶段根据输入文件生成以.o为后缀的目的文件。3、汇编过程是针对汇编言语的步骤,调用as进展任务,普通来讲, 以.s和.S的汇编言语源代码文件经过预编译的汇编言语源代码文件都生成以.o为后缀的目的文件。4、当一切的目的文件都生成之后,gcc就调用ld来完成最后的关键性任务,这个阶段就是衔接。在衔接阶段,一切的目的文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到适宜的地方。二、gcc运用格式gcc的格式为:gcc option fileg

46、cc编译器有许多项选择项,但对于普通用户来说只需知道其中常用的几个就够了。下面为几个最常用的选项:-o 表示要求编译器生成所指定名字的可执行文件必需指定名字;-c 表示只需求编译器进展编译和汇编,而不要求链接,生成后缀为.o的同名的目的文件不需求指定名字;编辑源程序,文件名为Hello.cvoid main()printf(“Hello the world!n);1gcc o hello hello.c对hello.c进展编译链接,生成可执行文件hello.exe。需求输入目的文件名。 2gcc c hello.c只对hello.c进展编译、汇编,不链接。产生的目的文件为hello.o。三、g

47、cc运用举例 -g 要求编译器在编译的时候,产生对程序进展调试的信息;不用输入所产生的可执行文件名,自动生成a.exe例如:gcc g hello.c编译时产生调试信息,也产生了可执行文件a.exe。不需求输入目的文件名。 -E 表示编译器对源文件只进展预处置就停顿,而不做编译、汇编和链接; -S 表示编译器只进展编译,而不做汇编和链接; 不需求输入目的文件名例如: gcc S hello.c只对hello.c编译,产生了汇编言语文件hello.s。不需求输入目的文件名。 -O 是编译器对程序提供的编译优化选项,可以提高执行文件的运转效率;例如 : gcc O hello.c优化编译,并且产生

48、了可执行文件a.exe。不需求输入目的文件名。 -Wall 指定产生全部的警告信息。 例如 : gcc Wall hello.c产生全部警告信息,同时产生了可执行文件a.exe。不需求输入目的文件名。输入文件的类型gcc是经过后缀名来区别输入文件的类型,下面是gcc所遵照的部分商定规那么。c为后缀的文件,C言语源代码文件; .a为后缀的文件,是由目的文件构成的档案库文件;.C,.cc或.cxx 为后缀的文件,是C+源代码文件;.h为后缀的文件,是程序所包含的头文件; .i 为后缀的文件,是曾经预处置过的C源代码文件;.ii为后缀的文件,是曾经预处置过的C+源代码文件;.m为后缀的文件,是Obj

49、ective-C源代码文件; .o为后缀的文件,是编译后的目的文件;.s为后缀的文件,是汇编言语源代码文件;.S为后缀的文件,是经过预编译的汇编言语源代码文件。 gcc所生成的目的文件格式所生成的为可执行文件,Linux有两种可执行文件:ELFa.exe和a.out。ELFExecutive linked file为可执行链接文件,是一种新规范,功能更强大。文件的扩展名为 .exe。ELF为Linux的默许格式 交叉编译命令gcc基于命令行的。当作为交叉编译工具运用时,gcc支持很多种的平台和“宿主机目的机的组合。对应交叉编译,常用的命令就是arm-linux-gcc 。这样,当用C言语写好一

50、个运用程序时,运用此命令就是以生成可以在目的平台上执行的可执行文件,经过超级终端执行后,就可以在目的板上看到程序的结果。3.4.1 GNU make工具3.4.1 GNU make工具什么是Makefile 文件?在大型的开发工程中,通常有几十个到上百个的源文件,假设每次均手工键入gcc命令进展编译,会非常不方便。Linux专门为软件开发提供了一个自动化的管理工具GNU Make。Make的主要任务是读取Makefile文件的内容。该文件描画了目的文件之间的依赖关系,以及制定编译过程中运用的工具。同时,Make检查目的文件的时间戳,假设目的文件的时间戳至少比他的一个依托文件旧, Make可以自

51、动地更新和编译程序。我们先举一个实例来认识Make和Makefile文件的用法make概述make依托Makefile文件完成。默许情况下,GNU make工具在当前任务目录中按如下顺序搜索makefile:GNU makefile makefile Makefile。在Linux系统中,习惯运用Makefile作为makefile文件。假设要运用其他文件作为makefile,那么可利用下面make命令指明makefile文件:#make f Makefile.debug。比如:“Make.Linux,“Make.Solaris,“Make.AIX等,假设要指定特定的Makefile,他可以运

52、用make的“-f和“-file参数,如:make -f Make.Linux或make -file Make.AIX。 Makefile是一个文本格式的数据库文件,包含一些规那么,通知make编译哪些文件,在什么条件下编译。make规那么Makefile中的每条规那么包括下面内容:一个目的体target:make最终需创建的对象。包含一个或多个依赖体Dependency的列表,依赖体指明编译目的时需求用到的其它文件。 命令Command列表,指明从依赖体文件创建出目的对象所需求执行的命令。款式: (注:每个命令行前必需是一个Tab字符)target: dependency dependenc

53、y command command 假设一个工程有3个头文件,和8个C文件,我们为了完成前面所述的那三个规那么,我们的Makefile应该是下面的这个样子的。 edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.o gcc -o edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o main.o : main.c defs.h gcc -c main.c kbd.o : kbd.c defs.h command.h

54、 gcc -c kbd.c command.o : command.c defs.h command.h gcc -c command.c display.o : display.c defs.h buffer.h gcc -c display.c 反斜杠是换行符的意思以TAB键开头insert.o : insert.c defs.h buffer.h gcc -c insert.c search.o : search.c defs.h buffer.h gcc -c search.c files.o : files.c defs.h buffer.h command.h gcc -c fil

55、es.c utils.o : utils.c defs.h gcc -c utils.c clean : rm edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o makefile中运用变量 在上面的例子中,先让我们看看edit的规那么: edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.o gcc -o edit main.o kbd.o command.o display.o insert.o search

56、.o files.o utils.o 我们可以看到.o文件的字符串被反复了两次,假设我们的工程需求参与一个新的.o文件,那么我们需求在两个地方加。当然,我们的makefile并不复杂,所以在两个地方加也不累,但假设makefile变得复杂,那么我们就有能够会忘掉一个需求参与的地方,而导致编译失败。所以,为了makefile的易维护,在makefile中我们可以运用变量。makefile的变量也就是一个字符串,了解成C言语中的宏能够会更好。 比如,我们声明一个变量,叫objects.我们在makefile一开场就这样定义: objects = main.o kbd.o command.o dis

57、play.o insert.o search.o files.o utils.o 很方便地在我们的makefile中以“$(objects)的方式来运用这个变量了程序如下:objects = main.o kbd.o command.o display.o insert.o search.o files.o utils.o edit : $(objects) gcc -o edit $(objects) clean : rm edit $(objects) make的“隐晦规那么GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个.o文件后都写上类似

58、的命令,由于,我们的make会自动识别,并本人推导命令。 只需make看到一个.o文件,它就会自动的把.c文件加在依赖关系中,假设make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 gcc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。新的makefile又出炉了。 objects = main.o kbd.o command.o display.o insert.o search.o files.o utils.o edit : $(objects) gcc -o edit $(objec

59、ts) main.o : defs.h kbd.o : defs.h command.h command.o : defs.h command.h display.o : defs.h buffer.h insert.o : defs.h buffer.h search.o : defs.h buffer.h files.o : defs.h buffer.h command.h utils.o : defs.h .PHONY : clean clean : rm edit $(objects) 自动推导文件以及文件依赖关系后面的命令PHONY意思表示clean是一个“伪目的注释Makefil

60、e中只需行注释,和UNIX的Shell脚本一样,其注释是用“#字符,这个就像C/C+中的“/一样。假设他要在他的Makefile中运用“#字符,可以用反斜框进展本义,如:“#。例如:#that is a makefileHello:hello.o. 1每个子目录都有本人的Makefile,担任本子目录文件的编译和控制下级目录的编译。2系统有一规那么文件Rules.make,为整个系统一切的Makefile所用,放在顶层.3上级Makefile文件对下级Makefile文件进展控制,逐级递归到最低层的Makefile文件。最顶层的Makefile文件给出创建的目的文件。完成大工程系统编译的方法交

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论