文章目录
(一)用gcc编译C程序并运行
1.在终端中安装gcc
- 输入下列命令
sudo apt update
回车后输入密码后更新包列表
- 输入下列命令安装软件包
sudo apt install build-essential
-
输入”Y“后回车继续
-
输入以下命令验证gcc编译器是否安装成功
gcc --version
如图出现gcc 9.3.0即表示安装成功!
2.用gcc编译C程序
(1)编写一个hello.c文件
-
在Documents中打开终端
-
输入
touch
命令创建一个名为hello的文件夹
touch hello.c
- 输入
nano
命令打开hello.c文件
nano hello.c
- 写入代码后”ctrl s“保存,然后退出
#include<stdio.h>
int main(void)
{
printf("HELLO WORLD\n");
return 0;
}
- 输入以下命令将hello.c文件进行预处理、汇编、编译并链接形成可执行文件hello,-o选项用来指定输出文件的文件名。
gcc hello.c -o hello
- 输入以下命令得到输出结果(“.”代表当前目录)
./hello
- 运行结果如下
(2)编写一个主程序文件main1.c和子程序文件sub1.c
- 用上述方法创建一个文件main1.c,并写入程序然后保存
#include"sub1.c"
int main()
{
int x=2,y=5;
printf("%.2f\n",x2x(x,y));
return 0;
}
- 用同样的方法创建文件sub1.c,并写入程序然后保存
#include<stdio.h>
float x2x(int x,int y)
{
float ans;
ans=(float)y/(float)x;
return ans;
}
- 输入以下命令将main1.c文件进行预处理、汇编、编译并链接形成可执行文件main1,然后得到输出结果
(二)在Windows平台编译C程序并运行
- 在vs2019上创建一个新.cpp文件,命名为源,然后输入代码
//main1.c
#include<stdio.h>
#include"sub1.c"
float x2x(int x, int y);
int main(void)
{
int x = 2, y = 5;
printf("%.2f", x2x(x, y));
return 0;
}
- 再创建一个新.c文件,命名为sub1,然后输入代码
//sub1.c
#include<stdio.h>
float x2x(int x, int y)
{
float ans;
ans = (float)y / (float)x;
return ans;
}
- 再进行本地调试,开始编译执行代码,结果如下
(三)使用Makefile编译C程序并运行
- 输入
touch
命令创建一个txt文件并命名为makefile
touch makefile.txt
mv makefile.txt makefile
- 在makefile文件中写入以下代码
//注意使用tab缩进
main1:main1.o //左边的main1是目标文件,目标文件依赖于冒号右边
gcc main1.o -o main1 //必须以tab开头隔开
main1.o:main1.S
gcc -c main1.S -o main1.o
main1.S:main1.i
gcc -S main1.i -o main1.S
main1.i:main1.c
gcc -E main1.c -o main1.i
.PHONY: //伪目标标记,伪目标标记后的命令不会和目录下文件重复
//也就是说clean如果没有伪目标标记的话,目录下有一个clean的文件
//make clean将不会正确执行
clean:
rm -rf main1.o main1.S main1.i main1
- 打开终端,输入
make
命令得到可执行文件main1;编译后用make clean
命令进行清除
make
make clean
- 结果如下
// 初次写博(●ˇ∀ˇ●),请多多指教(ง •_•)ง