- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(实验三LINUX下C语言使用、编译与调试实验2
实验三:LINUX 下C语言使用、编译与调试实验
一、目的:
练习并掌握Linux提供的vi编辑器来编译C程序
学会利用gcc、gdb编译、调试C程序
学会使用make工具
二、内容
编写C语言程序,用gcc编译并观察编译后的结果,运行生成的可执行文件。
利用gdb调试程序。
学习编写makefile,并进行编译。
三、操作
1、文件编辑器vi
进入vi,直接执行vi编辑程序。
例:# vi test.c
显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变。编辑完成后,使用者可决定是否要取代原来旧有的文件。
1) vi的工作模式
(1)输入模式
输入以下命令即可进入vi输入模式:
a 在光标之后加入资料 A 在该行之末加入资料 i 在光标之前加入资料 I 在该行之首加入资料 o 新增一行于该行之下 O 新增一行于该行之上 (2)命令模式
在输入模式下,按ESC可切换到命令模式。命令模式下,可选用下列指令离开vi:
:q! 离开vi,并放弃刚在缓冲区内编辑的内容 :wq 将缓冲区内的资料写入磁盘中,并离开vi ZZ 同wq :x 同wq :w 将缓冲区内的资料写入磁盘中,但并不离开vi :q 离开vi,若文件被修改过,则要被要求确认是否放弃修改的内容,此指令可与:w配合使用 (3)命令模式下光标的移动
h 左移一个字符 j 下移一个字符 k 上移一个字符 l 右移一个字符 0(零) 移至该行的行首 $ 移至该行的行尾 ^ 移至该行的第一个字符处 H 移至窗口的第一行 M 移至窗口中间那一行 L 移至窗口的最后一行 G 移至该文件的最后一行 W, w 下一个单词 (W 忽略符号) B, b 上一个单词 (B 忽略符号) (4) 命令模式下的编辑命令
dd 删除当前光标所在行 yy 复制当前光标所在行 p 将复制的内容粘贴在光标所在的位置后 P 将复制的内容粘贴在光标所在的位置前 x 删除当前光标字符 X 删除当前光标之前字符 u 撤消 · 重做
2、GNU C编译器
1) 使用gcc
通常后跟一些选项和文件名来使用gcc编译器。gcc命令的基本用法如下:
gcc [options] [filenames]
命令行选项指定的编译过程中的具体操作
2) gcc常用选项
当不用任何选项编译一个程序时,gcc将建立(假定编译成功)一个名为a.out的可执行文件。
选项含义:
-o FILE 指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE 没
有指定,默认文件名是a.out.
例如,
# gcc test.c
编译成功后,当前目录下就产生了一个a.out文件。
也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。
例如:
#gcc –o count count.c
此时得到的可执行文件就不再是a.out,而是count。
-c GCC 仅把源代码编译为目标代码。默认时GCC 建立的目标代码文件有一个.o 的
扩展名。
-E 对文件进行预处理
-S 对文件进行编译,生成汇编代码。
-O 对源代码进行基本优化。这些优化在大多数情况下都会使程序执行得更快。
-g 在可执行程序中包含标准调试信息。
-Wall 允许发出GCC 能提供的所有有用的警告,也可以用-W(warning)来标识指定的
警告。
-l name 链接静态库
-L dir 库文件的搜索路径
3) 执行文件
格式: ./可执行文件名
例:
# ./a.out
# ./count
4) 例子
mypow.c:定义mypow()函数
unsigned long long mypow(unsigned int x, unsigned int y)
{
unsigned long long res=1;
if (y==0)
res = 1;
else if (y==1)
res = x;
else
res = x * mypow(x, y-1);
return res;
}
powtest.c:调用mypow()函数
#include stdio.h
#include stdlib.h
int main(int argc, char *argv[])
{
unsigned int x, y;
unsigned long long re
您可能关注的文档
- (完整套题操作.docx
- (财经法规与会计职业道德模拟试卷一.doc
- (财经法规与会计职业道德模拟试卷及答案.doc
- (宏杰常见问题列表.doc
- (职校生的现状与管理.doc
- (宏观答案.doc
- (职校管理文件.doc
- (财经法规与会计职业道德模拟试题一.doc
- (宏观经济学第三版课后习题答案1.doc
- (财经法规与会计职业道德模拟试题一及答案.doc
- 党员领导干部在理论学习中心组主题会议上的发言材料汇编(6篇).docx
- 2023年行政执法工作计划汇编(4篇).docx
- 国企领导干部学习董事长在新提任干部讲话精神心得汇编7篇.docx
- 学习《著作选读》第一卷、第二卷心得体会汇编(9篇).docx
- 关于切实做好国庆期间安全生产工作的通知汇编(5篇).docx
- 在2023年招商引资推介会上的推介词汇编(5篇).docx
- 医院年终工作总结汇编(共10篇)官方抖音号:笔尖耕耘.docx
- 2022年度镇和开发区书记抓基层党建工作述职报告汇编(7篇),提纲值得参考!1.docx
- 教育主题经验交流材料汇编(5篇).docx
- 在党内主题教育专题推进会议上的讲话汇编(3篇).docx
文档评论(0)