实验四 Linux系统搭建C语言编程环境

项目 内容
这个作业属于哪个课程 班级课程链接
这个作业的要求在哪里 作业要求链接
学号-姓名 17041525-张思河
作业学习目标 1)了解Linux系统C语言编程环境;2)学习Linux环境C语言开发步骤

1.安装C语言开发环境

sudo apt install build-essential   #ubuntu中安装C语言开发环境

查看gcc版本

gcc -v              #查看gcc当前版本信息

查看make版本

make -v       #查看make版本信息

2、简单C语言练习

(1).首先我们通过man命令查看帮助文档

man gcc   #查看gcc的文档信息

(2).命令行模式简单C语言编译链接等操作

我们可以通过vim编辑器编写一个最简单的程序,如写一个输出自己学号的程序。先创建一个文件夹,然后进入该新创建的文件夹中。

输入完源程序,接下来进行C语言编译的四个阶段,预编译,编译,汇编,链接

a)预编译

用vim打开test.i文件查看

b)编译
gcc -S test.i -o test.s  #生成汇编代码,由test.i文件生成test.s文件

我们可以用vim打开test.s文件来查看内容,也可以用命令cat

1)用vim打开test.s文件查看

2)用cat命令查看test.s文件

cat test.s #用cat命令查看test.s文件

c)汇编
gcc -c test.s -o test.o #将源文件生成一个目标文件,由test.s文件生成test.o文件

objdump -d test.o  #objdump命令来反汇编该文件来分析test.o文件内容

d)链接
gcc test.o -o test   #生成可执行文件test

可执行文件是二进制文件,同样需要用objdump命令来反汇编该文件分析文件内容

objdump -d test   #objdump命令来反汇编该文件来分析文件内容

e)运行
./test  #运行可执行文件test

(3).多文件编译

在exp4文件夹下面再建一个文件夹mfc(multi-files compile),并在该文件夹下面创建5个文件如下所示:

每个文件的内容分别如下:

main.c

my1.h

my1.c

my2.h

my2.c

完成上面的代码输入,接下来进行编译,对于多个文件编译,可以一次编译链接生成可执行文件,也可以分别编译每个C文件,最后进行链接得到可执行文件。

gcc my1.c my2.c main.c -o main1   #将多个文件一次编译链接生成可执行文件main1

gcc -c    #对.c文件进行编译和汇编,但不链接。
gcc my1.o my2.o main.o -o main2  #将多个文件链接生成可执行文件

请说明两种方法的区别?

答:第一种是直接一次编译链接生成可执行文件,第二种是分别编译每个C文件,最后进行链接得到可执行文件。

接下来编写一个简单的Makefile,通过make工具帮助进行编译,在当前文件夹编写一个Makefile文件

之后直接在终端输入make就可以进行编译链接操作

posted @ 2020-03-30 16:12  17041525  阅读(210)  评论(0编辑  收藏  举报