GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过gcc命令就可以将源文件编译成可执行文件。

GCC 既可以一次性完成C语言源文件的编译,也可以分步骤完成。本节将完整演示如何一次性完成源文件的编译(初学者也经常会这么做),下节将演示分步骤编译源文件。

本节以下面的C语言代码为例进行演示:

#include

int main()

{

puts("C语言中文网");

return 0;

}

1) 生成可执行程序

最简单的生成可执行文件的写法为:

$ cd demo  #进入源文件所在的目录

$ gcc main.c  #在 gcc 命令后面紧跟源文件名

#表示注释,读者可以不写,我写上是为了让读者明白每个命令的含义。#是 Shell 中的注释格式。

打开 demo 目录,会看到多了一个名为 a.out 的文件,这就是最终生成的可执行文件,如下图所示:

这样就一次性完成了编译和链接的全部过程,非常方便。

注意:不像 Windows,Linux 不以文件后缀来区分可执行文件,Linux 下的可执行文件后缀理论上可以是任意的,这里的.out只是用来表明它是 GCC 的输出文件。不管源文件的名字是什么,GCC 生成的可执行文件的默认名字始终是a.out。

如果不想使用默认的文件名,那么可以通过-o选项来自定义文件名,例如:

$ gcc main.c -o main.out

这样生成的可执行程序的名字就是main.out。

因为 Linux 下可执行文件的后缀仅仅是一种形式上的,所以可执行文件也可以不带后缀,例如:

$ gcc main.c -o main

这样生成的可执行程序的名字就是main。

通过-o选项也可以将可执行文件输出到其他目录,并不一定非得在当前目录下,例如:

$ gcc main.c -o ./out/main.out

或者

$ gcc main.c -o out/main.out

表示将可执行文件输出到当前目录下的out目录,并命名为main.out。./表示当前目录,如果不写,默认也是当前目录。

注意:out 目录必须存在,如果不存在,gcc 命令不会自动创建,而是抛出一个错误。

2) 运行可执行程序

上面我们生成了可执行程序,那么该如何运行它呢?很简单,在控制台中输入程序的名字就可以,如下所示:

$ ./a.out

./表示当前目录,整条命令的意思是运行当前目录下的 a.out 程序。如果不写./,Linux 会到系统路径下查找 a.out,而系统路径下显然不存在这个程序,所以会运行失败。

所谓系统路径,就是环境变量指定的路径,我们可以通过修改环境变量添加自己的路径,或者删除某个路径。很多时候,一条 Linux 命令对应一个可执行程序,如果执行命令时没有指明路径,那么就会到系统路径下查找对应的程序。

输入完上面的命令,按下回车键,程序就开始执行了,它会将输出结果直接显示在控制台上,如下所示:

$ cd demo

$ gcc main.c

$ ./a.out

C语言中文网

$

下图演示了在控制台上的实际效果:

如果程序在其它目录下,运行程序时还要带上目录的名字,例如:

$ ./out/main.out

或者

$ out/main.out

这个时候加不加./都一样,Linux 能够识别出out是一个目录,而不是一个命令,它默认会在当前路径下查找该目录,而不是去系统路径下查找,所以不加./也不会出错。

注意,如果程序没有执行权限,可以使用sudo命令来增加权限,例如:

$ sudo chmod 777 a.out

完整的演示

为了让读者有一个更加全面的认识,我们不妨将上面两部分的内容连接起来,完整的演示一下从编辑源文件到运行可执行程序的全过程:

$ cd demo  #进入源文件所在目录

$ touch main.c  #新建空白的源文件

$ gedit main.c  #编辑源文件

$ gcc main.c  #生成可执行程序

$ ./a.out  #运行可执行程序

C语言中文网

$   #继续等待输入其它命令

下图是在控制台上的实际效果:

gcc可以编译python程序吗_GCC编译C语言程序完整演示相关推荐

  1. c语言程序设计编辑与调试环境实验报告,01程序设计基础实验报告_C语言程序设计基础.doc...

    01程序设计基础实验报告_C语言程序设计基础 程序设计基础 实验报告 题 目: C语言程序设计基础 院 (部): 管理工程学院 专 业: 信息管理与信息系统 班 级: 信管101 姓 名: 张三 学 ...

  2. 培训c语言程序,编程人员培训手册C语言程序设计基础.PPT

    编程人员培训手册C语言程序设计基础.PPT 第2章C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问为什么我们要学习C语言呢 理由1因为C语言流行. 理由2因为C ...

  3. opencv编译python库_linux 下编译安装 opencv-python

    编译参考 Docker环境下编译,内部整理的详细的编译选项和整个编译的流程,可以直接用,也可以参考: https://github.com/SkeLLLa/docker-ffmpeg-opencv h ...

  4. 一个c语言程序只要编译和链接没有错误,一个 C 语言程序只要编译和链接没有错误,程序运行结果就肯定正确...

    一个 C 语言程序只要编译和链接没有错误,程序运行结果就肯定正确 更多相关问题 网页表单中不能插入表格.() 要想在一个网页中嵌套另外一个网页,一般可以使用页内框架.() 贸易也是一种特殊的技术.() ...

  5. python程序设计第一章答案_Python语言程序程序设计-第一章习题解答

    作为一名非计算机专业毕业的学生,一直想学Python用来解决工作中遇到的问题,但是对计算机一直摸不到好的门路,于是买到了Python语言程序程序设计这本书,用做习题的形式,积累自己的学习成果,相信不怕 ...

  6. 对c语言和程序设计基础的体会,C语言程序设计基础与应用

    <C语言程序设计基础与应用(高等院校计算机教育系列教材)>由刘丽.朱俊东.张航编著,本书内容由浅入深.循序渐进,介绍C语言的基本语法知识和程序设计等内容,同时兼顾了全国计算机等级考试二级C ...

  7. c语言程序.cpp文件,[轉]C语言程序设计基础之文件

    所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等 ...

  8. C语言程序设计基础实验教程,C语言程序设计基础实验教程

    本书是教育科学"十五"国家规划课题的研究成果,是<C语言程序设计基础>一书的实验配套教程,它为C语言初学者上机实验提供指导.全书提供了13个方面的验证性.设计性实验,对 ...

  9. c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt

    c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...

最新文章

  1. 微服务和容器技术有风险,望君三思而后行
  2. formal method第10课
  3. Android AutoFocusCallback is not being called or not returning
  4. 微信小程序上传图片到html,微信小程序-上传图片
  5. 快速开发后台不用太多代码的 tp5_小程序·云开发优劣简述
  6. 如何面试.NET/ASP.NET工程师?
  7. 通过SPANN方式将Spring&Quartz与自定义注释集成
  8. php公交查询系统源代码,基于Smarty公交查询系统的设计与实现(PHP,MySQL)
  9. linux如何标识用户账号和组账号,linux管理用户和组
  10. 信息学奥赛一本通 1095:数1的个数 | OpenJudge NOI 1.5 40
  11. 计算机二级考试c语言公共知识,2016年电大最新计算机二级考试c语言公共基础题知识点.doc...
  12. servlet到底是什么?
  13. Wireshark通过TCP协议抓取QQ好友IP以及定位
  14. Win11重启快捷键是什么?
  15. nvcc编译器之GPU代码编译(chapter 5)
  16. 建设数据中心机房主要看这几点,否则被定为劣质机房!!!
  17. 【转载】测试工程师怎么甩锅
  18. i7处理器好吗_i5和i7区别有多大,性能差距大吗?i5-9400F和i7-9700F的区别对比
  19. OpenVINO™手写字符识别模型与使用
  20. # 一、阿里矢量图标(字体图标)网址:https://www.iconfont.cn/#### 1.使用步骤1.登录阿里矢量图标网站 2.搜索想要的图标且加到购物车 3.点击右

热门文章

  1. 稳站大屏 AIoT 时代之巅,创维 Swaiot 生态品牌实现全面布局!
  2. 播放内核的“瘦身”,你只需要这样做!
  3. 我有一辆机器人小车,怎么让它跑起来,还会避障、目标跟踪、路径规划?
  4. 规模比互联网大 30 倍的物联网,如何入门?
  5. 十步教你如何接手别人的代码!
  6. 从 2,000 到 25,000 工程师,微软开源如何制霸 GitHub?
  7. 有答案了!一张图告诉你到底学Python还是Java?你怎么选?
  8. 开源正在蚕食 500 亿美元的数据库行业!
  9. 爱奇艺否认裁员 20%;京东回应撤出澳洲;Android Studio 3.5 Beta 来了!| 极客头条...
  10. 一封遗失信件成就的科技亿万富翁