本文是在Ubuntu系统上编译多个C程序来对比在Linux系统和Windows系统编写C程序的区别。涉及到的程序为main1.c、sub1.h。以下采用三种方式进行编译,第一种是直接使用gcc在命令行编译,第二种是在Windows系统进行编译, 第三种是使用Makefile文件编译。

目录

一、直接使用gcc在命令行编译

1.gcc编译过程(以编译hello.c为例)

2.编写c程序

二、在Windows系统进行编译

三、使用Makefile文件编译

四、总结



一、直接使用gcc在命令行编译

1.gcc编译过程(以编译hello.c为例)

编译阶段

编译命令

作用

预处理

gcc -E hello.c -o hello.i

编译器将源代码中包含头文件编译进来

编译

gcc -S hello.i -o hello.s

检查代码规范性并翻译成汇编语言

汇编

gcc -c hello.s -o hello.o

将.s文件转换为目标文件

链接

gcc hello.o -o hello

将目标文件转换为可执行文件

2.编写c程序

(1)ubuntu下创建c语言hello world程序

打开终端输入sudo apt-get install vim 下载vim

ubuntu操作系统docker ubuntu操作系统 c语言用什么_ubuntu

 输入sudo apt-get install g++下载gcc

输入vim hello.c创建hello.c文件,按下i进入编辑

ubuntu操作系统docker ubuntu操作系统 c语言用什么_ubuntu_02

按下esc键,再按:wq保存代码。

输入gcc hello.c -o hello进行编译

ubuntu操作系统docker ubuntu操作系统 c语言用什么_Windows_03

 输入./hello运行程序

ubuntu操作系统docker ubuntu操作系统 c语言用什么_c语言_04

 2.编写一个源文件main1.c和一个头文件sub1.h,实现两个数相乘,其中a=5,b=10。

main1.c源程序

ubuntu操作系统docker ubuntu操作系统 c语言用什么_ubuntu操作系统docker_05

sub1.h头文件

ubuntu操作系统docker ubuntu操作系统 c语言用什么_linux_06

 编译运行得到结果

ubuntu操作系统docker ubuntu操作系统 c语言用什么_ubuntu操作系统docker_07

二、在Windows系统进行编译

在DevC++环境下进行编译

main1.c源文件

ubuntu操作系统docker ubuntu操作系统 c语言用什么_ubuntu_08

sub1.h头文件

ubuntu操作系统docker ubuntu操作系统 c语言用什么_ubuntu_09

 编译运行

ubuntu操作系统docker ubuntu操作系统 c语言用什么_Windows_10

三、使用Makefile文件编译

输入gedit makefile创建makefile文件

ubuntu操作系统docker ubuntu操作系统 c语言用什么_linux_11

编写Makefile文件

ubuntu操作系统docker ubuntu操作系统 c语言用什么_c语言_12

编译运行

 

ubuntu操作系统docker ubuntu操作系统 c语言用什么_c语言_13

四、总结

在Ubuntu系统上编写C语言,可以使用gcc直接编译和Makefile进行编译这两种生成方式。与在Windows系统不同,在Ubuntu上用gcc进行编译,感觉更加的原始,不能简单的向Windows的编译软件一样,通过按几个按键就能实现编译运行,也不能简单的通过鼠标去完成文件的创建,全部都是通过代码来实现,这可以让我们更好地去理解整个编译过程中的各个步骤的作用,明白程序是怎样运行出来的。

参考文章:

ubuntu系统下的c语言

Ubuntu系统使用gcc和Makefile编译C程序