vi编译器
进入vi 建立一个文件,如file.c,进入插入方式,输入一个C语言程序的各行内容,故意制造基础错误。最后,将文件存盘。回到shell状态下。 运行gcc file.c –o myfile,编译该文件会发现错误提示,理解其含义。 错误提示含义:错误在}之前漏了;输出函数输错应printf 重新进入vi,对该文件修改。然后存盘,退出vi。重新编译该文件。如果编译通过,可以用./myfile运行该文件。 运行man date > file10,然后 vi file10。 使用x,dd等命令删除某些文本行。 X命令一个一个字符删除 dd命令一行一行删除 使用u命令复制此前的情况。 使用c,r,s等命令修改文本内容。 C命令 R命令 S命令 使用检索命令进行给定模式的检索。
C程序的编译和调试
改写例6.1,使用下列选项对它进行编译:-I,-D,-E,-c,-o,-l。 -I进行编译,生成目标文件Imengl存放在/home/rehat目录下,-I命令从目录中搜寻进行编译 -D进行编译,宏定义D=1,可执行文件Dmengl中没有这个宏判断,不输出结果 -E进行编译,gcc –E sq.c直接在命令行窗口中输出预处理后的代码 -c进行编译,生成目标文件mfile.o,sq.o -o进行编译,生成可执行文件放在mengl文件中,最后执行mengl -l进行编译,连接标准C语言函数库编译生成可执行文件lmengl 2.对下面程序进行调试
#include
#include
int main(int argc, char **argv)
{
char *p;
int i;
p= malloc(30);
strcpy(p,"not 30 bytes");
printf("p=\n",p);
if(argc==2){
if(strcmp(argv[1],"-b") ==0)
p[50]='a';
else if(strcmp(argv[1],"-f")==0){
free(p);
p[0]='b';
}
}
/*free(p); */
return 0;
}
编译badprog.c,-g命令调试可执行文件,有一部份代码没执行,出错 利用gdb调试,查看错误信息,没找到错误 利用list显示错误信息 设置断点,运行程序 修改程序,再执行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019110915321692.png)
|