在Ubuntu下初学C语言及Makefile----实例

摘要:在Ubuntu下进行gcc编译以及Makefile文件建立,并与Windows环境下进行对比学习。
相关知识:Ubuntu,gcc,vim,Makefile,Windows环境下的vc++
简要概括:请大家在仿照此实例之前在Ubuntu中下载或更新gcc,vim,Makefile,如对此有疑问请移步其他论坛进行相关学习。

在Windows下用Vc6++编译

C语言下的Hello,World!

先进行大家比较熟悉的Windows环境下的编译Hello,World!程序,大家先来练练手。 打开vc++6.0 输入以下代码。

#include<stdio.h>				//预处理
int main()						//main主函数
{
	printf("Hello World!\n");	//打印Hello,World!至屏幕(\n为换行符)
	return 0;					//返回值0
}

下图是编译成功的图
在这里插入图片描述

C语言下头文件的编译与调用

这里我将用vc++工程进行编写头文件以及调用。(如有对vc++建立工程有疑问的请点击此链接https://jingyan.baidu.com/article/8ebacdf0cbdb5749f75cd54a.html–该链接为百度经验)
linuxx.h库函数代码如下

#ifndef linuxx						//声明头文件	
#define linuxx						//宏定义
#include<stdio.h>					//预处理
#include<stdlib.h>					//预处理
float sumfloat(float,float);		//声明sumfloat函数	
#endif								//结束

这里这样编写是为了避免重复定义。
linuxx.c代码如下

#include"linuxx.h"						//使用" "的意思是在此目录下搜索头文件
float sumfloat(float a,float b)			//定义sumfloat函数
{
	a+=b;								//a=a+b
	return a;							//返回a的值
}

main.c的代码如下

#include"linuxx.h"					//头文件为linuxx.h
void main(){						//主函数
	float a=12,b=11;				//定义两个浮点型a,b并进行赋值
	float x;
	x=sumfloat(a,b);				//调用sumfloat函数并将值返回给x
	printf("%f\n",x);				//打印x的值至屏幕
}

具体工程建立如下图:
在这里插入图片描述

在Ubuntu下进行编译

编写Hello World!

在进入Ubuntu之后,在命令行界面进行创建test文件,之后进入test文件(由于是测试学习,所以请大家尽量建立指定文件夹进行保存自己的代码,这样方便之后的学习与清理文件)并输入:

vim Hello.c

Hello.c代码如下:

#include<stdio.h>				//预处理
int main()						//main主函数
{
	printf("Hello World!\n");	//打印Hello,World!至屏幕(\n为换行符)
	return 0;					//返回值0
}

输入:

gcc Hello.c

生成a.out文件,之后输入:

./a.out

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

编写头文件以及调用

linux.h代码如下

#ifndef linux						//声明头文件	
#define linux						//宏定义
#include<stdio.h>					//预处理
#include<stdlib.h>					//预处理
float sumfloat(float,float);		//声明sumfloat函数	
#endif		

linux.c代码如下:

#include"linux.h"						//使用" "的意思是在此目录下搜索头文件
float sumfloat(float a,float b)			//定义sumfloat函数
{
	a+=b;								//a=a+b
	return a;							//返回a的值
}

main.c代码如下:

#include"linux.h"					//头文件为linuxx.h
void main(){						//主函数
	float a=12,b=11;				//定义两个浮点型a,b并进行赋值
	float x;
	x=sumfloat(a,b);				//调用sumfloat函数并将值返回给x
	printf("%f\n",x);				//打印x的值至屏幕
}

代码输入之后进行gcc编译,输入

gcc -c linux.c

gcc -c即是将linux.c 编译成二进制目标代码,文件后缀为.o

在生成linux.o文件之后,输入:

gcc linux.o main.c -o sumfloat

gcc -o 是将linux.o与main.c链接成最终可执行文件sumfloat.exe,

之后输入:

./sumfloat

得出结果下图所示:
在这里插入图片描述

但进行最后编译的时候出现警告,网上搜出的原因是未在头文件以及主函数中声明调用函数,具体警告内容如下:
在这里插入图片描述
目前由于时间问题没有解决,望大佬告知。

makefile进行调用头文件

创建makefile文件,输入:

vim makefile

makefile代码如下

sumfloat:main.c
	gcc linux,o mainc.c -o sumfloat
	

之后输入:

make

同样有以上编译问题
最后输入:

./sumfloat

得出结果为:
在这里插入图片描述

总结

此次通过对比学习,使我更加深刻的认识vc与Ubuntu下的c语言编译以及初步上手了makefile的编程,同时也掌握了一些编程知识。其中遇到很多问题,谢谢网上好心博客主以及我的同学们,如果以上博客有侵,则请联系我。谢谢各位阅读并指出错误。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值