`
scm002
  • 浏览: 317085 次
社区版块
存档分类
最新评论

Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)

 
阅读更多

http://www.crazyant.net/2011/10/29/linux%E4%B8%8Bgcc%E5%92%8Cmakefile%E5%AE%9E%E4%BE%8B%EF%BC%88%E4%BB%8Egcc%E7%9A%84%E7%BC%96%E8%AF%91%E5%88%B0makefile%E7%9A%84%E5%BC%95%E5%85%A5%EF%BC%89/

一、确认已经装好了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后,下次只会编译改动的文件,其它的文件不会再编译了

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

分享到:
评论

相关推荐

    GCC和MakeFile入门代码二 DLL编译

    总结来说,这个压缩包文件提供了一个关于如何使用GCC和MakeFile进行DLL编译的入门实例。通过学习和实践这个例子,开发者可以掌握C++源码的编译过程,了解MakeFile的编写,以及如何在Windows上创建和使用DLL。这是一...

    GCC和MakeFile入门代码一

    总结一下,GCC和Makefile是软件开发中的基础工具,GCC负责将源代码编译成可执行程序,而Makefile则提供了自动化构建和管理项目的方法。通过学习和掌握这两个工具,开发者可以提高代码的构建效率,减少手动操作的错误...

    linux下gcc,g++的用法和区别,以及makefile的编写

    ### Linux 下 GCC、G++ 的用法和区别,以及 Makefile 的编写 #### GCC 和 G++ 编译流程 在 Linux 系统中,GCC (GNU Compiler Collection) 是一个非常强大的工具集,它包含了多种编程语言的编译器,如 C、C++、...

    makefile 和gcc手册

    在Linux编程环境中,`Makefile`和`gcc`是两个至关重要的工具,它们共同协助开发者高效地管理和构建项目。`Makefile`是一个脚本文件,它定义了一系列规则,告诉操作系统如何构建、编译和链接源代码,使得软件的构建...

    linux系统下采用vscode+cmake+gcc+gdb开发实例详细介绍

    在Linux系统下,采用VSCode、CMake、GCC和GDB进行开发实例,需要了解Linux系统的基本概念和命令。Linux系统是一个多用户、多任务的操作系统,用户可以在/home目录下创建自己的文件夹。文件夹的作用是分类存储文件,...

    gcc.rar_gcc makefile_gcc 使用_makefile_makefile gcc_makefile in en

    1. **安装与配置**:GCC需要先安装到你的系统中,这通常涉及到下载源代码,配置编译选项,然后编译和安装。 2. **基本使用**:使用`gcc`命令编译源代码文件,例如`gcc main.c -o main`将编译main.c文件并生成名为...

    linux,gcc,makefile相关学习

    在Linux环境下,为了有效地管理和构建复杂的软件项目,我们常常会使用到`gcc`编译器和`makefile`工具。本文将深入探讨这两个工具及其在Linux环境中的应用。 首先,`gcc`全称为GNU Compiler Collection(GNU编译器...

    gcc 和makefile 详解

    gcc/g++在执行编译工作的时候,总共需要4步  1.预处理,生成.i的文件[预处理器cpp]  2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]  3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]  4....

    arm-linux-gcc-5.4.0.tar.gz

    总之,`arm-linux-gcc`是进行ARM架构Linux系统交叉编译的重要工具,它的安装和使用涉及到Linux环境变量配置、编译选项选择、库依赖管理等多个方面。熟练掌握这些技能,对于在嵌入式领域开发高效、可靠的应用至关重要...

    arm-linux-gcc-5.4.0.tar.gz交叉编译器

    总结,ARM-Linux-GCC 5.4.0交叉编译器是嵌入式Linux系统开发的得力工具,它的使用涵盖了环境配置、Makefile编写、编译和链接等多个环节。理解并熟练掌握这一工具,对于提升ARM平台上的软件开发能力至关重要。

    gcc_makefile

    ### gcc_makefile 知识点解析 ...通过以上对GCC Makefile的结构和工作流程的详细解析,我们可以了解到GCC构建过程中各个阶段的关键操作和逻辑,这对于理解GCC如何构建以及如何自定义构建过程具有重要意义。

    arm_gcc编译,makefile自动生成demo

    arm_gcc编译,makefile自动生成demoarm_gcc编译,makefile自动生成demoarm_gcc编译,makefile自动生成demoarm_gcc编译,makefile自动生成demoarm_gcc编译,makefile自动生成demoarm_gcc编译,makefile自动生成...

    makefile编写及实例

    在编程世界中,`Makefile` 是一个至关重要的工具,特别是在多文件项目中,它用于自动化编译和链接过程,节省了开发者的时间和精力。`Makefile` 的编写是项目构建自动化的核心,它定义了一系列规则,告诉操作系统如何...

    linux-0.11 gcc4.3下编译源码

    Linux 0.11是Linux操作系统的一个早期...总的来说,将Linux 0.11的源码在GCC 4.3下成功编译,是一个涉及编译原理、操作系统内核、C语言和Unix工具链等多个领域的实践过程,对于提升技术理解深度和广度具有很高的价值。

    makefile & GCC & GDB.rar

    总结,`makefile`、`GCC`和`GDB`是Linux下C++开发的三大基石,它们各自承担着构建、编译和调试的重要任务。掌握这三个工具的使用,能够极大地提升开发效率,让C++开发变得更轻松、更高效。对于任何想要在Linux环境下...

    arm-linux-gcc-4.3.2.rar

    2. Linux操作系统:Linux是一种开源、自由的操作系统内核,被广泛用于各种设备,从手机到超级计算机。在嵌入式系统中,Linux提供了稳定、可定制的环境,便于开发者构建和管理软件。 3. GCC 4.3.2:这是GCC的一个...

    ubuntu 下makefile实例讲解

    下面是一个简单的Makefile实例,编译六个源文件和六个头文件: ``` func1.c: func1.o gcc -c func1.c -o func1.o func2.c: func2.o gcc -c func2.c -o func2.o func3.c: func3.o gcc -c func3.c -o func3.o func...

    ucosii mini2440 arm-linux-gcc 编译

    3. **交叉编译**:运行`make`命令,arm-linux-gcc会根据Makefile编译源代码,生成适用于ARM架构的目标代码。编译过程中可能出现链接错误或语法错误,需仔细分析并修正。 4. **烧录固件**:编译成功后,生成的可执行...

    内网环境下Linux环境gcc gcc-c++编译器安装所需依赖

    在内网环境中,Linux系统上的开发工作经常需要安装GCC(GNU Compiler Collection)和G++编译器,以便能够编译C语言和C++语言的程序。GCC是开源的,提供了对多种编程语言的支持,而G++是GCC的一部分,专门用于C++的...

    arm-linux-gcc-4.3.3(交叉编译链).zip

    总的来说,"arm-linux-gcc-4.3.3(交叉编译链)"是一个用于在非ARM系统上构建和调试ARM架构Linux应用的关键工具,它简化了嵌入式开发过程,提高了效率,并允许开发者在更强大的平台上进行调试。了解并熟练使用这样的...

Global site tag (gtag.js) - Google Analytics