一、确认已经装好了GCC和Make的软件包

可以使用whereis命令查看:

如果whereis  gcc和whereis  make命令有结果,说明安装了这两个软件,可以继续往下做。

二、使用GCC编译运行一个HelloWorld程序(只涉及单个文件)

可以在任何一个目录编写C程序然后编译运行,我这个实例在自己主目录进行:

然后就进入了编写程序的界面:

按下键盘”i”进入编辑界面,然后输入程序:

按ESC(进入命令行模式),然后输入”:wq”,冒号表示开始输入命令,字母w代表保存文件,字母q代表退出编辑器:

按回车退出vim编辑器,退回到终端,以下是之后的编译运行截图:

三、使用GCC编译运行一个多文件程序(包含主程序和子程序)

这里我们要写两个C程序文件,一个文件里面写个被调函数,另外一个文件中main函数调用第一个文件的函数,如下所示:

ex_display.c的代码如下,同样的写完后ESC然后输入:wq退出:

输入如下的main函数代码:

然后保存退出,如下是编译运行过程:

四、使用Makefile解决多文件编译运行的问题

正如上节的红框框里面所叙述,如果一个程序涉及的文件很多的话,每个都得写出来,很是麻烦,所以Makefile就出现了,请看教程:

进入makefile的编辑界面后,输入如下内容:

然后保存退出,运行make命令:

五、Makefile和shell script方法的对比

有人说,我把之前的所有命令,全写到shell script里面,不就达到Makefile的效果了,没错确实最终效果是相同的,但是Makefile却有这些好处:简化编译执行的命令(并没有gcc –c的过程)

一次make后,下次只会编译改动的文件,其它的文件不会再编译了

其它还有一些优点,不过这第二个优点,对于大型项目来说,好处太大了!

相关推荐

Linux下make使用gcc编译,Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)相关推荐

  1. Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用

    首先先说一下Linux吧因为这也是博主最早接触的编程开发环境所以比较熟悉的! Linux下就说GCC GCC编译如果不指定编译选项的话是一步到位没有额外的后缀名文件! .i文件:.i文件是GCC -E ...

  2. linux g 编译目录下,你真的了解Linux下gcc编译器的工作过程吗?

    小豆丁:老张!老张! 老张:干嘛? 小豆丁:咋啦?愁眉苦脸的,是不是又被媳妇给揍了? 老张:开玩笑,我在家那就是相当于老虎的存在,谁敢揍我! 媳妇:老张,你说啥?我没听清,你再说一遍? 老张:我是老虎 ...

  3. 安卓和Linux动态库一样吗,在Linux环境下编译Android下的最新版ffmpeg+x264单个动态库(.so)...

    最近在mac下用ndk交叉编译最ffmpeg出问题,总是显示用系统的gcc而不是ndk的toolchain的交叉编译gcc来编译的.之前明明没问题的,可能是由于最近升级macOS导致的.由于对这方面实 ...

  4. Linux 下重新编译Windows下生成的Qt工程

    原址:https://blog.csdn.net/Fanpei_moukoy/article/details/21613703 以下内容亲测通过 其实qt才是真正的跨平台,java简直太搞笑了,假跨平 ...

  5. linux中命令对c文件进行编译,Linux下C语言编译基础及makefile的编写

    这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 1.源程序的编译 在L ...

  6. linux安装了xml怎么编译,linux下libxml库的安装及编译

    linux下libxml库的安装及编译 1. 下载和安装LIBXML2 Libxml2是个C语言的XML程式库,能简单方便的提供对XML文件的各种操作,并且支持XPATH查询,及部分的支持XSLT转换 ...

  7. Linux下,编译程序遇到“undefined reference to XXX” 报错(可针对webots的编译,不同的文件夹下面不同的cpp,.h文件)

    首先,确保自己安装了一个比较好的编程工具,本人推荐Kdevelop.CLion,程序跳转等都没有问题,可以方便查找问题的所在,同时也可以查看文件路径书写是否出现异常等. 一.确保函数和路径没有任何问题 ...

  8. 记一次ubutu下编译linux kernel4、5

    这两天在搞内核编译准备上qemu走一走,搞了四天了终于是让编译程序走动了,那么编译内核的话有这么几步走, 一.准备 准备的材料有,系统.内核源码.32位兼容库以及其他需求库 系统,系统我用的Ubunt ...

  9. windows下编译linux内核,windows上可编译Linux内核

    编译过程: 1). 解压后默认的文件夹位置是在D:\Linux-0.11,如果你不是将文件解压到该目录下, 你要修改MinGW32目录下的MinGW32.bat文件,将里面的PATH指向MinGW32 ...

  10. linux下如何运行c编译,Linux下如何编译并运行C程序

    GCC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C.C++.Ada.Fortran.Objective.Perl.Python.Ruby以及Ja ...

最新文章

  1. HTML页面加载和解析流程详细介绍
  2. IC/FPGA笔试/面试题分析(十)CMOS门电路
  3. Spark之spark shell
  4. python 无法引入同级目录的方法_再见 virtualenv!K神教你轻松管理多个Python环境...
  5. 超强领先!Transformer图像复原效果显著!
  6. python进行数据分析 简书_《利用python进行数据分析》读书笔记1
  7. inl和dnl matlab_请问如何用matlab仿真它的性能, 比如 INL, DNL, SFDR,EOB等等。
  8. python自动化任务_Python任务自动化工具tox使用教程
  9. 利用c语言编制1个程序,实现对给定语法句子的递归下降分析.,递归下降语法分析 - osc_3ubrwgtm的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. iOS开发(第三方使用)——极光推送SDK接入
  11. 名表依波路borel_依波路手表排名 依波路手表世界排名第几
  12. 计算机网络基本设备及网络拓扑图
  13. 测试报告(包括测试总结)
  14. 我的操作系统梦破灭了
  15. 服务器无限刷钱bug,魔兽世界怀旧服出现“重大”刷金币BUG,分线的负面影响来的太快...
  16. Oracle日期周详解以及周开始结束时间计算
  17. access贝克曼_贝克曼库尔特ACCESS2化学发光免疫分析仪-贝克曼库尔特中国官网
  18. 石化人员定位方案:uBeacon+ibeacon融合定位特点
  19. 为什么选择新闻软文营销?
  20. 【基础】开关电源电路图讲解

热门文章

  1. Twice enter press click will trigger backend roundtrip
  2. SAP UI5 new sap.ui.commons.Button trigger component load
  3. CRM Document builder fill-in status fillin
  4. 如何处理SAP OData错误消息: Invalid parametertype used at function XXXX
  5. SAP标准培训课程C4C10学习笔记(四)第四单元
  6. SAP标准培训课程C4C10学习笔记(三)第三单元
  7. oracle数据库安装自动化,自动化Oracle数据库静默安装
  8. python中单行注释_Python中的单行、多行、中文注释方法
  9. MySQL百一题库_「灵魂拷问」MySQL面试高频一百问(工程师方向)
  10. 高一数学集合知识点整理_高一数学知识点总结