一、在Ubuntu系统上用gcc编译主程序main1.c和在vs上运行main1.c
1.安装教程
见此博主gcc安装教程
二、编写C程序
- 写main1.c
-
#include"sub1.h" int main() { int x=2,y=9; //定义x和y变量 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); //计算b除以a的结果 #endif
- 编写sub1.c
-
#include "sub1.h" /*******************/ /* 参数:a,b */ /* 返回值:ans */ /*******************/ float x2x(int a,int b) { float ans; ans=(float)b/a; return ans; }
步骤一
命令:gcc -c sub1.c
作用:将sub1.c程序转换为目标文件sub1.o
步骤二
命令:gcc main1.c sub1.o -o main1
作用:编译main1.c文件为目标文件main1.o,然后链接sub1.o目标文件生成main1可执行文件
步骤三
执行./main1命令,即可执行编译生成的main1程序
二、在Windows上编写
在VScode上创建三个文件(main1.c sub1.c sub1.h)
代码如上
但在VScode中由于多文件无法编译的问题,会出现如下问题
我们需要去设置中修改(文件->首选项->设置)
输入Code runner找到Executor Map点击在settings.json中编辑
在其中c程序对应的一行,修改其中的gcc $filename为gcc *.c(最好将原来的注释掉然后重新复制一份再修改)。
最终成功输出结果
三、在ubuntu系统下用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
输入maike指令得到可执行文件main1
在源文件目录下执行命令make clean
,即可删除编译过程中产生的*.o文件