学习Ubuntu系统下用gcc和Makefile编译程序

本文目的是通过在Ubuntu系统上编译多个C程序来熟练掌握在Linux系统上编写C程序。相关程序名称分别为main1.c、sub1.c、sub1.h。采用三种方式进行编译,第一种是直接使用gcc在命令行编译,第二种是在windows系统上使用编程软件编译,第三种是使用Makefile文件编译。

(一)直接使用gcc编译C程序

1.编写C程序

  • 编写main1.c
#include"sub1.h"
int main()
{
	int x=3,y=8;           
	printf("%.2f\n",x2x(x,y));    
	return 0;
}
  • 编写sub1.h
#ifndef __SUB1_H
#define __SUB1_H
#include<stdio.h>
float x2x(int a,int b);        
#endif
  • 编写sub1.c
#include "sub1.h"
float x2x(int a,int b)
{
	float c;
	c=(float)b/a;
	return c;
}

2.gcc编译过程

编译阶段编译命令作用
预处理gcc -E main1.c -o main1.i将源代码中包含头文件进行编译
编译gcc -S main1.i -o main1.s检查代码规范性并翻译成汇编语言
汇编gcc -c main1.s -o main1.o将.s文件转换为目标文件
链接gcc main1.o -o main1将目标文件转换为可执行文件

3.gcc执行编译

  • 步骤一
    命令:gcc -c sub1.c
  • 步骤二
    命令:gcc main1.c sub1.o -o main1
  • 步骤三
    执行./main1命令,即可执行编译生成的main1程序
    在这里插入图片描述

(二)使用windows平台进行编译(Dev-c++)

  • 编写main1.c文件
    在这里插入图片描述
  • 编写sub1.h头文件
    在这里插入图片描述
    -运行结果
    在这里插入图片描述

(三)使用Makefile编译c程序

在终端输入命令安装make
sudo apt-get install make

1.Makefile文件编写规则

target:prerequisites
	command			# command以一个tab键开始

# target为一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)
# prerequisites是需要生成target所依赖的文件或是目标
# command也就是make需要执行的命令。(任意的Shell命令)

2.编写Makefile文件并编译

  • 编写Makefile文件
main1:sub1.o main1.c
        gcc main1.c sub1.o -o main1
sub1.o:sub1.c
        gcc -c sub1.c -o sub1.o
clean:
        rm *.o 
  • 命令行输入make即可编译得到可执行文件main1
    在这里插入图片描述
  • 运行结果
    在这里插入图片描述
    注:在源文件目录下执行命令make clean,即可删除编译过程中产生的*.o文件
    在这里插入图片描述

(四)总结

本次实验,我在Ubuntu系统上编译C语言,使用gcc直接编译和Makefile编译两种方式。使用gcc这一工具时,我理解到C语言源程序编译为可执行文件的过程,用Windows进行编译C语言更加简洁,但不好理解代码成为可执行文件的过程,这些编译过程会使我们更加了解C语言的执行过程。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值