一、用gcc命令行方式编译C程序
1.编写C程序
(1)虚拟机桌面右键,点击“在终端打开”,输入touch main1.c
即可创建一个新的名为main1.c
的文件。
(2)在main1.c
文件里编写以下主程序代码。
(3)输入touch sub1.h
命令建立一个名为sub1.h
的文件。
(4)在sub1.h
文件编写如下代码。
(5)建立sub1.c
文件并编写以下代码。
2.gcc编译
(1)输入gcc -c sub1.c
命令将sub1.c
程序转换为目标文件sub1.o
。
(2)输入gcc main1.c sub1.o -o main1
命令编译main1.c
文件为目标文件main1.o
,然后链接sub1.o
目标文件生成main1
可执行文件。
(3)输入./main1
命令,执行编译生成的main1
程序,成功输出。
二、在windows系统下编译C程序
在windows系统下任意自己熟悉的编译软件运行C程序,与Ubuntu系统比较其优劣。我选择的是最简易的VC6.0。
(1)创建main1.cpp
主程序如下:
#include<stdio.h>
#include"sub1.h"
int main()
{
int x=2,y=9;
printf("%.2f\n",x2x(x,y));
return 0;
}
(2)创建sub1.cpp
子程序编写如下代码:
#include<stdio.h>
#include "sub1.h"
float x2x(int a,int b)
{
float ans;
ans=(float)b/a;
return ans;
}
(3)创建sub1.h
头文件编写如下代码:
#ifndef __SUB1_H
#define __SUB1_H
#include<stdio.h>
float x2x(int a,int b);
#endif
(4)编译,成功输出。
三、Makefile方式编译C程序
(1)执行touch
创建Makefile
文件并编写如下代码。
(2)将main
函数的赋值注释。
(3)执行make
命令。
这里显示“makefile:2: *** 缺失分隔符。停止”。查询得知gcc
,rm
,cp
前面是tab
分隔符,不能用空格。修改makefile
文件如下,可以看到cc
,rm
变颜色了,即正确了。
(4)再次执行make
命令,没有之前的错误,输出为-nan
。
(5)将main
的注释去掉,再次执行make
,正确输出。
四、总结
- 之前学习过计算机系统1,这次Ubuntu系统的学习要顺利很多。
- 本次收获新知识,Ubuntu系统里文件中编写
gcc
,rm
,cp
执行命令时,前面需要tab
分隔符,不能用空格。 - gcc方式编译程序让我们充分了解到整个C语言的源程序是如何一步步变为可执行文件的。
参考文献
https://www.cnblogs.com/zlee-home/p/13708004.html
https://blog.csdn.net/qq_45237293/article/details/108741893