在Ubuntu系统下用gcc和makefile/在Windows系统下用Visual C++6.0编译C语言程序

本文主要是介绍在Ubuntu系统下用gcc和makefile/在Windows系统下用Visual C++6.0编译C语言程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Ubuntu系统下用gcc和makefile/在Windows系统下用Visual C++6.0编译C语言程序

程序说明:请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。

1.用gcc编译

1.1创建一个sub1.h的头文件
在这里插入图片描述在gedit编译器编写头文件sub1.h

#ifnedf _SUB1_H_
#define _SUB1_H_
float x2x(int a,int b);
#endif

1.2创建一个sub1.c文件
在这里插入图片描述
在gedit编译器编写sub1.c

#include"sub1.h"
float x2x(int a,int b)
{
float x=a+b;
return x;
}

1.3创建一个main1.c文件
在这里插入图片描述
在gedit编译器编写main1.c文件

#include<stdio.h>
#include"sub1.h"
void main()
{
float y=x2x(2,2);
printf("a+b=%lf\n",y);
}

1.4用gcc编译C文件
先将sub1.c文件用gcc编译成目标文件sub1.o;
再将main1.c文件用gcc编译成目标文件main.o;
最后将两个文件合成一个可执行文件,并运行结果如下:
在这里插入图片描述

2. 用Visual C++6.0编译

2.1首先创建一个工程
在这里插入图片描述
2.2在工程下面创建一个头文件sub1.h
在这里插入图片描述
编写头文件,程序如下:

#include<stdio.h>
float x2x(float a,float b)
{float x=a+b;return x;
}

2.3在工程下创建一个主程序main1.c
在这里插入图片描述
编写主程序:

#include<stdio.h>
#include"sub1.h"
void main()
{int a=2;int b=2;float y;y=x2x(a,b);printf("%f\n",y);
}

2.4编译并运行,输出如下
在这里插入图片描述
在这里插入图片描述

3.用makefile编译

3.1用gedit创建makefile文件
在这里插入图片描述

sharapova: main.o sub1.o
gcc -o sharapova main.o sub1.o
main1.o: main1.c
gcc -c main1.c
sub1.o: sub1.c
gcc -c sub1.c

3.2编译makefile文件
用make命令
编译所有.c文件生成可执行文件,并输出结果
在这里插入图片描述
以上输出说明编辑makefile时出现了格式错误
正确的格式如下:

sharapova: main.o sub1.ogcc -o sharapova main.o sub1.o
main1.o: main1.cgcc -c main1.c
sub1.o: sub1.cgcc -c sub1.c

注:gcc前都需要tab键空格
正确输出结果如下:
在这里插入图片描述

这篇关于在Ubuntu系统下用gcc和makefile/在Windows系统下用Visual C++6.0编译C语言程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917861

相关文章

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注