Ubuntu系统下用makefile方式编程主程序

一、先在Ubuntu用c语言编写一个简单的helloworld并了解一些编译过程的指令

用gcc编译c程序(以helloworld为例)

ctrl+alt+T打开终端;
ls查看文件夹里的文件;
touch+文件名创建文件;
vim+文件名的指令对文件进行编辑。
在这里插入图片描述
点击 i 进行插入编写;
在这里插入图片描述
helloworld的c语言代码:

#include<stdio.h>
int main() {
      printf("HelloWorld!");
}

在这里插入图片描述
点击键盘左上esc,退出编辑,点" : "+wq,w是保存,q是退出:
在这里插入图片描述

运行截图:
在这里插入图片描述

二、在Ubuntu系统上用gcc编译主程序main1.c和在vs上运行main1.c

1、gcc编译

按照上面创建helloworld的方法创建三个文件(main1.c sub1.c sub1.h):
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 m = (float)b / a;
	return m;
}

main1.c的代码:

#include<stdio.h>
#include"sub1.h"
int main() {

	int a = 12, b = 42;
	printf("%f\n",x2x(a,b));

}

经过一些指令编译后,运行得到结果:
在这里插入图片描述

2、Windows上面的vs编译

在vs上可以只创建两个文件(main1.c sub1.c)或者和上面Ubuntu一样三个,这里创建了两个文件:
main1.c的代码:

#include<stdio.h>
float x2x(int a , int b);
int main() {

	int a = 12, b = 42;
	printf("%f\n",x2x(a,b));

}

sub1.c的代码:

#include<stdio.h>
float x2x(int a, int b) {
  
	float m = (float)b / a;
	return m;
}

运行结果:
在这里插入图片描述

三、在Ubuntu系统上用makefile方式编译主程序main1.c

创建的文件有三个与上述的gcc文件相同,只是多出了一个makefile,相当于把指令写在了makefile。
makefile的代码(建议自己敲一遍,可能空格不一样会出问题):

main1:sub1.o main1.c
 	 		  	gcc main1.c sub1.o -o main1
 sub1.o:sub1.c
                gcc -c sub1.c
clean:                
                rm *.o         

在源文件目录下执行命令make,即可编译得到可执行文件main1;
在源文件目录下执行命令make clean,即可删除编译过程中产生的*.o文件。
打开终端输入make后再./main1运行:
在这里插入图片描述
这次在Ubuntu系统上编写C语言并运行的实验,我使用了gcc直接编译和Makefile进行编译这两种生成可执行文件的方式;通过gcc这种编译工具,我深刻的理解到了如何从C语言源程序编译为可执行文件的过程,而不是像windows上的“一键编译”。gcc这些编译过程会使我们更加了解整个C语言的源程序是如何一步步变为可执行文件的。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值