一、在Ubuntu系统中进行简单的程序编写

1.编写程序

#include<stdio.h>

int main() { printf("Hello World\n"); return 0; }

2.gcc的下载及代码的编译运行

I.编写完代码后想使用gcc进行编译时出现报错

(此处文件名不是hello.c是因为我是先进行的多文件编译)

II.通过报错提示可知,输入下方代码以安装gcc

III.输入代码并按下回车后,会询问用户是否继续运行,输入y并回车

IV.等待安装完成后,重新使用gcc进行编译运行,得到输出“Hello World”

二、使用gcc进行多文件的编程

1.编写程序

main.c:

#include "sub1.h"
int main() {
    int x = 2, y = 9;
    printf("%.2f\n", x2x(x, y));
    return 0;
}

sub1.c:

#include "sub1.h"

float x2x(int a, int b){
    float ans;
    ans = (float)b / a;
    return ans;
}

sub1.h:

#ifndef __SUB1_H
#define __SUB1_H
#include<stdio.h>

float x2x(int a, int b);

#endif

2.使用gcc对代码进行编译

使用gcc -c sub1.c命令将sub1.c程序转换为sub1.o

使用gcc main1.c sub1.o -o main1命令将main1.c文件编译成main1.o文件,然后链接sub1.o文件生成main1可执行文件

使用./main1命令执行程序,等待其输出结果

三、使用Windows系统编程

使用软件:Visual Studio 2022

将文件保存并编译,等待其输出结果

与Ubuntu中输出的结果一致

四、使用makefile编译

makefile使用前也需要安装,与gcc的安装同理

输入以下代码创建makefile文件

$ nano makefile

编译makefile文件

目标文件:main1(最终可执行文件)

main1: main1.o sub1.o gcc main1.o sub1.o -o main1

编译main1.c为目标文件main1.o

main1.o: main1.c gcc -c main1.c -o main1.o

编译sub1.c为目标文件sub1.o

sub1.o: sub1.c gcc -c sub1.c -o sub1.o

清理命令:删除所有目标文件和可执行文件(make clean 调用)

clean: rm -f main1.o sub1.o main1

编写完成后按下快捷键ctrl+x,输入y并回车以保存

输入并执行命令make,即可编译出可执行文件main1

使用./main1命令执行该文件,等待其输出结果

使用make clean命令即可删除所有文件

五、总结

本次实验完成了Ubuntu与Windows系统下C语言程序的编写与编译。在Ubuntu中,成功编写并通过gcc编译运行“Hello World”单文件程序、多文件(main1.c与sub1.c)程序,还利用Makefile实现多文件自动化编译;在Windows中,通过Visual Studio2022编译运行多文件程序,各场景均得到正确结果。通过这次实验学习到了跨系统编译操作差异,掌握了多文件编译需匹配函数声明定义,Makefile可简化复杂项目编译等知识。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐