作业题
1、使用vi编辑器编辑一个c语言源程序hello.c,程序的功能为:接受用户输入的姓名,然后向屏幕输出一条语句“Welcome 姓名”。使用命令“gcc –o hello hello.c”编译源程序,如果发现程序错误则需要反复使用vi修改源文件并且在修改后重新编译。最后在X Window的桌面上放置源程序hello.c的链接。
要求:写出具体的步骤和程序代码。
①创建一目录zwjzgx :
#mkdir zwjzgx
②在其中创建一个名为hello.c的文件:
#vi hello.c
③按i文本插入,写入程序:
#include<stdio.h>
main()
{
char name[20];
printf(“please input your name : ”);
scanf(“%s”,name); //输入姓名
printf(“welcome %s !\n”,name); //输出welcome姓名
return 0;
}
④按ESC键后,按shift+zz保存并退出
⑤输入:#gcc –o hello hello.c
将hello.c编译成可执行文件hello
⑥输入: #gdb hello //调试hello
(gdb) run //运行程序并查看结果
⑦ 输入quit 可退出当前界面
⑧:在桌面建立链接:
创建链接有如下两个方法:
方法1:打开文件管理器,到hello.c文件,单击鼠标右键,选择【创建链接】命令,则在文件管理器的窗口中出现一个图标,名字为“到…的链接”,并且带一个小箭头符号。只要将该图标拖放到桌面,就可以建立到该项目的链接。
方法2:选中hello.c文件,按住鼠标中键(三键鼠标)的滚轮键,拖放到桌面,当放开鼠标中键时,会弹出【移动到此处】、【复制到此处】、【在此处创建链接】等命令,选择【在此处创建链接】命令,就可以在桌面创建到该项目的链接。
2、简述gcc的用法和常用参数的含义。
使用gcc编译器时,必须给出一系列必要的调用参数和文件名称。不同参数的先后顺序对执行结果没有影响,只有在使用同类参数时的先后顺序才需要考虑 。如果使用了多个 -L 的参数来定义库目录,gcc会根据多个 -L 参数的先后顺序来执行相应的库目录。
gcc最基本的用法是 :gcc [options] [filenames]
其中,options就是编译器所需要的参数,filenames给出相关的文件名称,最常用的有以下参数:
①-c
只编译,不链接成为可执行文件 。编译器只是由输入的 .c 等源代码文件生成 .o 为后缀的目标文件 ,通常用于编译不包含主程序的子程序文件。
c语言编译器怎么用文件格式提交作业②-o output_filename 确定输出文件的名称 为output_filename。同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出默认的可执行文件 a.out 。、
③-g
产生符号调试 工具(GNU的 gdb)所必要的符号信息。想要对源代码进行调试,就必须加入这个选项。
④-O
对程序进行优化编译、链接 。采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是编译、链接的速度就相应地要慢一些,而且对执行文件的调试会产生一定的影响,造成一些执行效果与对应源文件代码不一致等一些令人“困惑”的情况。因此,一般在编译输出软件发行版时使用此选项 。
⑤-O2
比 -O 更好的优化编译、链接。当然整个编译链接过程会更慢。
⑥-Idirname
将 dirname 所指出的目录加入到程序头文件目录列表 中,是在预编译过程中使用的参数。
说明:
C程序中的头文件包含两种情况:
#include <stdio.h>
比 -O 更好的优化编译、链接。当然整个编译链接过程会更慢。
⑥-Idirname
将 dirname 所指出的目录加入到程序头文件目录列表 中,是在预编译过程中使用的参数。
说明:
C程序中的头文件包含两种情况:
#include <stdio.h>
#include "stdio.h"
其中,使用尖括号(<>),预处理程序 cpp 在系统默认包含文件目录(如/usr/include)中搜索相应的文件;使用双引号,预处理程序 cpp 首先在当前目录中搜寻头文件,如果没有到,就到指定的 dirname 目录中去寻。
在程序设计中,如果需要的这种包含文件分别分布在不同的目录中,就需要逐个使用 -I 选项给出搜索路径 。
其中,使用尖括号(<>),预处理程序 cpp 在系统默认包含文件目录(如/usr/include)中搜索相应的文件;使用双引号,预处理程序 cpp 首先在当前目录中搜寻头文件,如果没有到,就到指定的 dirname 目录中去寻。
在程序设计中,如果需要的这种包含文件分别分布在不同的目录中,就需要逐个使用 -I 选项给出搜索路径 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论