Ubuntu系统使用gcc和makefile编译c程序

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

文章目录

(一)使用gcc编译c程序
1.编写C程序
2.gcc编译过程及运行
(二)在windows平台c语言编程
(三)使用makefile编译程序
1.makefile文件编写规则
2.编写makefile文件并翻译
(四)总结


提示:以下是本篇文章正文内容,下面案例可供参考

#1.1编译c程序

(1)编写main1.c

代码如下(示例):


//main1.c
#include<stdio.h>
#include"sub1.h"
int main()
{
int a;
int b;
a=3;
b=2;
printf("sum is:%f",x2x(a,b));
return 0;
}

(2)编写sub1.c
代码如下(示例):

//sub1.c
#include"sub1.h"
#include<stdio.h>


float x2x(int a,int b)
{
float m=(float)a;
float n=(float)b;
float z=m*n;
return z;

}


(3)编写sub1.h
代码如下:



//sub1.h
#ifndef _SUB1_H_
#define _SUB1_H_
float x2x(int a,int b);
#endif





1.2 gcc编译过程及运行
.gcc直接编译
步骤一
命令:gcc -c sub1.c
作用:将sub1.c程序转换为目标文件sub1.o
步骤二
命令:gcc main1.c sub1.o -o main1
作用:编译main1.c文件为目标文件main1.o,然后链接sub1.o目标文件生成main1可执行文件
步骤三
执行./main1命令,即可执行编译生成的main1程序
运行结果

在这里插入图片描述
2.1 在windows平台c语言编程
在这里插入图片描述

3.1 makefile文件编写规则
目标文件:【相依文件】
Tab命令【注释】
Tab命令【注释】
3.2 makefile文件编写并翻译
在这里插入图片描述
在这里插入图片描述

#4.1总结

三、对两种系统不同编译方式的总结
首先,第一部分的内容比较容易,只要学习gcc命令编译即可,第二部分Makefile部分的内容实验因为之前并没有很好的熟悉Makefile的各部分操作,因此在实验过程中出现了很多问题,以下将遇到的主要问题列出,供大家参考改善:
(1)因为Makefile编辑界面的空格引起的在执行界面无法执行make命令。此种问题的解决方式也很简单,只需将编辑界面命令语句前的空格全部用tab键代替即可。
(2)因为sub1.c文件的缺失导致的make执行时无法执行完所有命令。此种问题解决方式添上sub1.c即可。
(3)由于不在文件所在位置打开终端而导致的make命令无法执行问题。起初碰见这种问题时,我以为是gcc编译器的缺失导致,但是经过测试发现gcc正常,找了很长时间才明白终端位置不能随便打开。
最后总结一点:Ubuntu系统在程序编译时,采用gcc编译比较方便,在对多个文件进行维护工作时采用make和Makefile来完成较为容易。三、对两种系统不同编译方式的总结
首先,第一部分的内容比较容易,只要学习gcc命令编译即可,第二部分Makefile部分的内容实验因为之前并没有很好的熟悉Makefile的各部分操作,因此在实验过程中出现了很多问题,以下将遇到的主要问题列出,供大家参考改善:
(1)因为Makefile编辑界面的空格引起的在执行界面无法执行make命令。此种问题的解决方式也很简单,只需将编辑界面命令语句前的空格全部用tab键代替即可。
(2)因为sub1.c文件的缺失导致的make执行时无法执行完所有命令。此种问题解决方式添上sub1.c即可。
(3)由于不在文件所在位置打开终端而导致的make命令无法执行问题。起初碰见这种问题时,我以为是gcc编译器的缺失导致,但是经过测试发现gcc正常,找了很长时间才明白终端位置不能随便打开。
最后总结一点:Ubuntu系统在程序编译时,采用gcc编译比较方便,在对多个文件进行维护工作时采用make和Makefile来完成较为容易。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件系统求助 -------------------------------------------------------------------------------- 1.源程序编译   在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面 我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv) { printf("Hello Linux/n"); } 要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c   gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程 序的输出结果了.命令行中 gcc表示我们是用gcc编译我们的源程序,-o 选项表示 我们要求编译器给我们输出的可执行文件名为hello 而hello.c是我们的源程序文件.   gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了. -o选项我们 已经知道了,表示我们要求输出的可执行文件名. -c选项表示我们只要求编译器输出 目标代码,而不必要输出可执行文件. -g选项表示我们要求编译器在编译的时候提 供我们以后对程序进行调试的信息.   知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你 想要知道更多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说 明. 2.Makefile的编写 假设我们有下面这样的一个程序,源代码如下:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值