实验三 vi编辑器及GCC编译器的使用
Linux的VI,GCC,GDB,Makefile等简单应用

hello:main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
等价于
hello:main.o func1.o func2.o
gcc $^ -o $@
&&&&&&&&&&&&&&&&&&&&&【杂项】&&&&&&&&&&&&&&&&&&&&&
-->".PHONY"将"clean"目标声明为伪目标
&&&&&&&&&&&&&&&&&&&&&【添加变量】&&&&&&&&&&&&&&&&&&&&&
例:
hello:main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
若采用变量,则:
x. -Wall 生成所有警告信息
xi. -w 不生成任何警告信息 例如:gcc -w hello.c -o hello
2020-Linux文版-实验3-Vi编辑器的使用及C编程-学生实验报告模板-P

实验报告课程名称: Linux操作系统实验名称:实验3 Vi编辑器的使用及C编程学生姓名:孙文浩班级计算机 141 学号学院(系):信息数理学院指导教师:庄丽华实验时间: 2016 年 9 月 30 日实验成绩:实验3 Vi编辑器的使用及C编程一、实验要求(1)掌握Vi的三种运行模式及切换方法;(2)掌握使用Vi的各种操作命令进行文本文件的编辑;(3)用Vi编写Linux下C程序,掌握gcc编译。
二、实验内容和实验步骤1、vi编辑器的使用【操作要求1】首先用合法用户名登陆系统,不保存直接退出。
【操作步骤】(1)在系统提示符下,输入vi,按回车键,进入vi的界面。
(2)输入:q!不保存直接退出。
【操作要求2】新建文件f1并编辑一段文字进行保存。
【操作步骤】(1)在系统提示符下输入vi f1,按回车键。
(2)看到vi的界面,输入i,左下角会出现“插入”。
(3)输入一段文字。
10 Basic Linux Networking and Monitoring Commands You Should KnowI have listed down 10 basic Linux networking and monitoring commands which eachLinux user should know. These Linux basic networking and monitoring commands like hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool are used for viewing the IP address of the Linux server, managing Linux server network adapter configuration, making network connections among Linux servers over telnet andethernet, Linux server information etc. Lets have a look on the following Linux networking and monitoring commands.(4)按Esc键,进入命令模式。
gcc编译器使用简明指南

gcc编译器使用简明指南gcc编译器使用简明指南1、简介1.1 编译器概述GCC(GNU Compiler Collection)是一个开源的编译器套件,支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada等。
它是一个强大的编译器,被广泛用于开发各种类型的应用程序。
1.2 安装GCC可以在多个平台上进行安装,如Linux、Mac OS和Windows 等。
安装方法因平台而异,可参考相应的文档进行安装。
2、基本用法2.1 编译单个文件GCC的基本语法是:```gcc [选项] [文件名]```选项可以有很多,常用的包括:- `-o`:指定输出文件名- `-Wall`:显示警告信息- `-g`:调试信息- `-O`:优化级别示例:```gcc -o hello hello:c```以上命令将编译`hello:c`文件,并输出可执行文件`hello`。
2.2 编译多个文件如果项目中涉及多个源文件,可以使用以下方式进行编译:```gcc [选项] [文件1] [文件2] :::```示例:```gcc -o hello hello:c utils:c```以上命令将编译`hello:c`和`utils:c`,并输出可执行文件`hello`。
3、高级用法3.1 静态库和动态库GCC支持静态库和动态库,可以使用以下命令进行编译:```gcc [选项] [文件1] [文件2] ::: -o [输出文件] -L [库路径] -l [库名]```选项说明:- `-L`:指定库搜索路径- `-l`:指定要的库示例:```gcc -o hello hello:c -L /usr/lib -l ncurses```以上命令将编译`hello:c`并`ncurses`库,可执行文件`hello`。
4、调试选项GCC支持多种调试选项,可通过以下命令进行编译:```gcc [选项] [文件名] -g```选项说明:- `-g`:调试信息示例:```gcc -o hello hello:c -g```以上命令将编译`hello:c`并可执行文件`hello`,同时调试信息。
1、GCC编译器的使用

linux下gcc编译器的使用1、文件后缀名.c C 源程序.C C++ 源程序.cc C++ 源程序.cxx C++ 源程序.m Objective –C源程序.i 预处理过的c源程序.ii 预处理过的C++源程序.s 组合语言源程序.S 组合语言源程序.h 头文件.o 目标文件.a 存档文件2、GCC常用选项-c 通知GCC取消链接步骤,即编译源码并在最后生成目标文件;-Dmacro定义指定的宏,使它能够通过源码中的#ifdef进行检验 #define-static 指定程序编译时采用静态编译的方法;-E 不经过编译预处理程序的输出而输送至标准输出;-g获得有关调试程序的详细信息,它不能与-o选项联合使用;-Idirectory在包含文件搜索路径的起点处添加指定目录;-llibrary提示链接程序在创建最终可执行文件时包含指定的库;-O、-O2、-O3将优化状态打开,该选项不能与-g选项联合使用;-S要求编译程序生成来自源代码的汇编程序输出;-v启动所有警报;-Wall发生警报时取消编译操作,即将警报看作是错误;-Werror在发生警报时取消编译操作,即把报警当作是错误;-w 禁止所有的报警。
目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。
GCC不仅功能非常强大,结构也异常灵活。
最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。
开放、自由和灵活是Linux的魅力所在,而这一点在GCC上的体现就是程序员通过它能够更好地控制整个编译过程。
在使用GCC编译程序时,编译过程可以被细分为四个阶段:◆ 预处理(Pre-Processing)◆ 编译(Compiling)◆ 汇编(Assembling)◆ 链接(Linking)GCC起步在学习使用GCC之前,下面的这个例子能够帮助用户迅速理解GCC的工作原理,并将其立即运用到实际的项目开发中去。
实验3 vi工具的使用

实验3 利用vi编辑器运行C语言程序
一、实验要求
熟悉并掌握vi三种工作模式之间的转换方法。
掌握新建和保存文件,进行文本插入与删除的操作方法。
掌握编辑并运行C语言程序的方法。
二、实验内容
C语言运行时需要gcc编译器,提供了C,C++,JAVA等库函数。
1 查看gcc编译器是否安装
[root@localhost ~]# which gcc //如果提示/usr/bin/gcc说明已经安装,否则就没有安装
2 安装gcc编译器
方法(一):利用yum安装
配置yum源
[root@localhost ~]#cd /etc/yum.pos.d
[root@localhost yum.repos.d]# ll
总用量8
-rw-r--r--. 1 root root 125 4月7 21:58 packagekit-media.repo
-rw-r--r--. 1 root root 529 5月31 2012 rhel-source.repo
[root@localhost yum.repos.d]# vi rhel-source.repo //将该文件修改如下
在末行模式下保存并退出:wq
[root@localhost ~]# yum install gcc* //安装系统提供的全部语言的工具包
3 vi编辑hello.c并用gcc编译运行
[root@localhost ~]# vi hello.c //如果该文件存在,则进入该文件,否则,创建后进入
在末行模式下保存并退出:wq
4 卸载gcc文件
[root@localhost ~]# yum remove gcc*。
实验3 使用gcc编译器

实验三使用gcc编译器一.实验目的1、巩固vi的使用。
2、练习用Linux下gcc编译器运行c或c++程序。
3、练习使用make工具和调试工具gdb。
4、练习编写简单的c或c++程序。
二.实验内容用vi建立C++/C程序后,学习使用gcc编译器编译执行(命令格式详见实验指导书P100),查看结果。
1. helloworld程序。
2. 判断一个年份是平年还是闰年。
3. 打印九九乘法表。
三.实验步骤1、登陆Linux系统,操作方法请参考实验二。
2、使用vi编写helloworld.cpp程序(安装了vim的同学,可以输入vimhelloworld.cpp),保存。
程序代码如下:using namespace std;#include<iostream>int main(){cout<<”hello,world!\n”;return 0;}或编写helloworld.c程序,代码如下:#include<stdio.h>int main(){printf(“hello,world!\n”);return 0;}然后,利用g++ helloworld.cpp或gcc helloworld.c指令编译执行。
(如果没有任何输出提示,恭喜你,编译执行成功。
否则,会提示出错信息,请检查语法并修改。
)最后,在命令行输入 ./a.out 查看结果。
3、make工具在应用程序的开发过程中,若每次修改源文件都需要重新输入编译命令,这种做法很烦琐而且开发效率不高。
为了能快速组织源文件进行编译,linux中提供了make工具。
Make的运行过程前,必须编写Makefile文件。
它描述了软件包中文件之间的关系,提供更新每个文件的命令。
Make实验上是根据Makefile 来进行编译的。
以helloworld.c为例,编写makefile文件:helloworld:helloworld.ogcc –o helloworld helloworld.o(开头使用Tab键空格) helloworld.o:helloworld.cgcc –o helloworld.o –c helloworld.cclean:rm –f *.o hello然后,重新编译helloworld.c,命令:gcc –g helloworld.c –o helloworld 第三步,输入命令:make4、调试工具---gdb运行gdb调试程序通常的命令格式为:gdb 程序的文件名例如: gdb helloworld启动gdb调试工具后,进入gdb的调试界面。
实验三vi编辑器及GCC编译器的使用

实验三vi编辑器及GCC编译器的使用实验三vi编辑器及GCC编译器的使用【实验目的】一、掌握文本编辑器vi的使用方法二、了解GNU gcc编译器三、掌握使用GCC编译C语言程序的方法【实验内容】一、vi的三种工作模式:1、命令模式:执行相关文本编辑命令2、输入模式:输入文本3、末行模式:实现查找、替换、保存、多文件操作等等功能二、进入vi,直接在Shell提示符下键入vi [文件名称],如果该文件在当前目录不存在,则vi创建之。
三、退出vi1、在命令模式下输入“:wq”,保存文件并退出vi2、若不需要保存文件,输入“:q”3、若文件已修改,但不保存,输入“:q!”强制退出vi4、其它一些不常用的方法在此省略。
四、命令模式下的常用编辑命令1、启动vi后,进入的是vi的命令模式2、按i键,进入输入模式,可以进行文本的编辑,在输入模式下,按esc 键,可切换回命令模式i:光标位置不变,可在光标左侧插入正文a:光标位置向后退一格,可在光标左侧插入正文o:在光标所在行的下一行增添新行O:在光标所在行的上一行增添新行I:光标跳到当前行的开头A:光标跳到当前行的末尾3、光标的移动k、j、h、l分别等同于上、下、左、右箭头键Ctrl+b,向上翻一页Ctrl+f,向下翻一页nH,将光标移到屏幕的第n行nL,将光标移到屏幕的倒数第n行4、删除文本nX,删除光标所指向的后n个字符D,删除光标右侧的所有字符(包括光标所指向的字符)db,删除光标左侧的全部字符ndd,删除当前行和当前行以后的n行内容5、粘贴和复制p,将缓冲区的内容粘贴到当前字符的右侧P,将缓冲区的内容粘贴到当前字符的左侧yy,复制当前行到内存缓冲区nyy,复制n行内容到内存缓冲区6、搜索字符串/str1,正向搜索字符串str1n,继续搜索str2,反向搜索字符串str27、撤销和重复u,撤销前一条命令的执行结果.,重复最后一条命令五、末行模式下的命令:n,将光标移动到第n行:nw file,将第n行写入file文件:n,mw file,将第n行至第m行写入file文件:w,将编辑的内容写入原始文件:wq,将编辑的内容写入原始文件并退出编辑程序:w file,将编辑的内容写入file文件,保持原有文件的内容不变:f file,将当前文件重命名为file :e file,编辑新文件file代替原有内容:f,打印当前文件的状态,如文件的行数,光标所在的行号等:!<命令>,执行相应shell命令六、三种工作模式的切换1、在Linux shell下,键入vi或vi <文件名>进入命令模式2、在命令模式下,键入:进入末行模式3、在命令模式下,键入文本编辑命令如i,a,o等进入文本输入模式4、在文本输入模式下,按esc键进入命令模式5、在末行模式下,按backspace键或del键进入命令模式6、在末行模式下,键入q或wq,退出vi,饭后到Linux shell下GCC编译器的使用一、使用vi或其它文本编辑器,输入C语言程序,并保存为test.c二、在Linux shell下,输入命令gcc –o test test.c三、编译正确后,输入命令./test运行程序,观察程序运行结果四、若编译错误,根据提示信息,进入程序查错,再回到第二步,直至程序语法无误。
实验3 使用vi编辑器

实验三使用vi编辑器一.实验目的学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。
二.实验内容1.进入和退出vi。
2.利用文本插入方式建立一个文件。
3.在新建的文本文件上移动光标。
4.对文本文件执行删除、复原、修改、替换操作。
三.实验步骤1.进入和退出vi<1>进入vi在系统提示符($)下输入命令vi和想要编辑(建立)的文件名(如example),便可进入vi。
<2>退出vi在命令方式下可有几种方法退出vi编辑器::wq 把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到Linux shell 下。
:ZZ 仅当作过修改时才将缓冲区内容写到文件上。
:x 与:ZZ 相同。
:q! 强行退出vi。
感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容。
这样,先前对该文件所做的修改或输入都被抛弃。
2.新建文件<1>在Linux提示符$之后,输入命令:vi myfile,然后按〈Enter〉键。
<2>输入插入命令i(屏幕上看不到字符i)。
<3>然后,输入以下文本行:To the only woman tht I,For mang year you have been my wife<4>发现这两行有错,进行改正:按〈Esc〉键,从插入方式回到命令方式。
按光标上移键,使光标移到第一行。
按光标左移键,使光标移到“tht”的第二个“t”处。
输入i(这是插入命令),然后输入a。
该行变成如下形式:To the only woman that I,按光标右移键,使光标移到“I”上。
我们想在“I”之后输入一个空格和单词“love”。
为此,输入附加命令“a”。
结果屏幕显示为:To the only woman that aI,这是怎麽回事儿?......原来是:我们先前使用了插入命令i,至今并未用〈Esc〉键返回命令方式。
所以,输入的所有字符都作为输入文本予以显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三vi编辑器及GCC编译器的使用
【实验目的】
一、掌握文本编辑器vi的使用方法
二、了解GNU gcc编译器
三、掌握使用GCC编译C语言程序的方法
【实验内容】
一、vi的三种工作模式:
1、命令模式:
执行相关文本编辑命令
2、输入模式:
输入文本
3、末行模式:
实现查找、替换、保存、多文件操作等等功能
二、进入vi,直接在Shell提示符下键入vi [文件名称],如果该文件在当前目录不存在,则vi创建之。
三、退出vi
1、在命令模式下输入“:
wq”,保存文件并退出vi
2、若不需要保存文件,输入“:
q”
3、若文件已修改,但不保存,输入“:
q!”强制退出vi
4、其它一些不常用的方法在此省略。
四、命令模式下的常用编辑命令
1、启动vi后,进入的是vi的命令模式
2、按i键,进入输入模式,可以进行文本的编辑,在输入模式下,按esc 键,可切换回命令模式
i:
光标位置不变,可在光标左侧插入正文
a:
光标位置向后退一格,可在光标左侧插入正文
o:
在光标所在行的下一行增添新行
O:
在光标所在行的上一行增添新行
I:
光标跳到当前行的开头
A:
光标跳到当前行的末尾
3、光标的移动
k、j、h、l分别等同于上、下、左、右箭头键
Ctrl+b,向上翻一页
Ctrl+f,向下翻一页
nH,将光标移到屏幕的第n行
nL,将光标移到屏幕的倒数第n行
4、删除文本
nX,删除光标所指向的后n个字符
D,删除光标右侧的所有字符(包括光标所指向的字符)db,删除光标左侧的全部字符
ndd,删除当前行和当前行以后的n行内容
5、粘贴和复制
p,将缓冲区的内容粘贴到当前字符的右侧
P,将缓冲区的内容粘贴到当前字符的左侧
yy,复制当前行到内存缓冲区
nyy,复制n行内容到内存缓冲区
6、搜索字符串
/str1,正向搜索字符串str1
n,继续搜索
?str2,反向搜索字符串str2
7、撤销和重复
u,撤销前一条命令的执行结果
.,重复最后一条命令
五、末行模式下的命令:n,将光标移动到第n行:nw file,将第n行写入file文件:n,mw file,将第n行至第m行写入file文件:w,将编辑的内容写入原始文件:wq,将编辑的内容写入原始文件并退出编辑程序:w file,将编辑的内容写入file文件,保持原有文件的内容不变:
f file,将当前文件重命名为file :e file,编辑新文件file代替原有内容:f,打印当前文件的状态,如文件的行数,光标所在的行号等:
!<命令>,执行相应shell命令
六、三种工作模式的切换
1、在Linux shell下,键入vi或vi <文件名>进入命令模式
2、在命令模式下,键入:
进入末行模式
3、在命令模式下,键入文本编辑命令如i,a,o等进入文本输入模式
4、在文本输入模式下,按esc键进入命令模式
5、在末行模式下,按backspace键或del键进入命令模式
6、在末行模式下,键入q或wq,退出vi,饭后到Linux shell下GCC编译器的使用
一、使用vi或其它文本编辑器,输入C语言程序,并保存为test.c
二、在Linux shell下,输入命令gcc –o test test.c
三、编译正确后,输入命令./test运行程序,观察程序运行结果
四、若编译错误,根据提示信息,进入程序查错,再回到第二步,直至程序
语法无误。
附:
GCC使用方法和常用选项
使用GCC编译C程序生成可执行文件需要经历4个步骤:
1、预处理,这一步需要分析各种命令,如#define、#include、#ifdef等。
Gcc调用cpp程序来进行预处理
2、编译,这一步将根据输入文件产生汇编语言,gcc调用ccl进行编译工作
3、汇编,这一步中将汇编语言作为输入,产生具有.o扩展名的目标文件,gcc调用as进行汇编工作
4、连接,这一步中各目标文件.o被放在可执行文件的适当位置上,该程序引用的函数也放在可执行文件中,gcc调用ld来完成Gcc命令的基本用法为:
gcc [option][filename],命令行选项指定的操作将在命令行上每个给出的文件上执行。
例如:
Gcc –o prog main.c test
1.c test
2.c
其中,“-o prog”指定输出的可执行文件名为prog,如果没有指定-o参数,gcc将使用默认的可执行文件名a.out
Gcc的命令选项有许多项,但经常使用的几个选项是:
1、-c:
只预处理,编译和汇编源程序,不进行连接
2、-oexefile,确定输出文件为exefile,如果没有该选项,默认输出为可执行文件a.out
3、-Dmacro或-Dmacro=defn,其作用类似于源程序代码中的#define
4、-O,对程序编译进行优化,编译后可执行文件的长度和执行时间缩短,但编译过程耗时变长,对主机性能要求较高。
5、-O2,比-O更好地优化
6、-g,告诉gcc产生能被GNU调试器使用的调试信息以便调试程序
7、-Idir,将dir目录加到搜寻头文件的目录列表中。
并优先于在gcc中默认的搜寻目录
更多的选项说明请查阅gcc使用手册。
#include <stdio.h>
int main(){printf(“Hello,world!\n”);}。