zoukankan      html  css  js  c++  java
  • gcc & gdb & make 定义与区别

    GCC

       通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进制代码。GCC是Linux平台下最常用的编译程序,它是Linux平台编译器的事实标准。同时,在Linux平台下的嵌入式开发领域,GCC也是用得最普遍的一种编译器.

        对于C语言文件"hello.c"(数据hello world的小程序), 要使用gcc 编译该文件,我们使用下面的命令:

          $gcc -Wall hello.c -o hello

        其表示将文件"hello.c"中的代码编译为机器码并存储在可执行文件 hello 中。机器码的文件名是通过-o 选项指定的。如果当前目录中与可执行文件的文件名已经存在,将会覆盖旧文件。选项-Wall 开启编译器几乎常用的安全警告(强烈建议使用该选项)。默认情况下GCC不会产生任何警告信息,当编写C/C++ 程序时警告非常有利于检测程序存在的问题。

          要运行该程序,输入可执行文件的路径如下:

          $./hello

          Hello world!

       这将可执行文件载入内存,并使CPU开始执行其包含的指令。路径./代指当前目录

    MAKE & MAKEFILE

       Make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够根据程序中模块的修改情况,自动判断应该对那些模块重新编译,从而保证软件是由最新的模块构成。make可以帮我们解决这两个问题——当程序的源文件改变后,它能保证所有受影响的文件都将重新编译,而不受影响的文件则不予编译。make 命令执行时候,需要一个makefile文件高数make需要怎么样去编译和链接程序。只要我们makefile写的好,一个make命令就可以有效率的完成编译的任务,自动根据当前文件的修改情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序. 

    GDB

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具. 或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。一般来说,GDB主要帮助你完成下面四个方面的功能:

      1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

      2、可让被调试的程序在你所指定的调置的断点处停住。

      3、当程序被停住时,可以检查此时你的程序中所发生的事。

      4、动态的改变你程序的执行环境。

      在可以使用gdb调试程序之前,必须使用-g 或者 -ggdb编译选项 编译源文件。

    总之:

        gcc就是一个纯编译器而make更牛逼些 包括了gcc  只有把makefile解决 一切ok.

        gdb调试C程序 先要用gcc编译,见上面写的两条命令。然后就可以用gdb来调试了。

    berkeleysong
  • 相关阅读:
    AS星尘(stardust)粒子系统 学习 3
    AS星尘粒子系统 初识2
    Flex程序启动时initialize、creationComplete、applicationComplete的区分
    翻译:Autofac.Module 介绍(Orchard)
    Notepad Tutorial(1)
    UNC path转载http://www.uwplatt.edu/oit/terms/uncpath.html
    org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy 中一个方法
    工作记录5月9日开始(不断更新中)
    EMF的一些总结(1)——关于Packages and Factories
    转载~final, static和 nested class 总结 原文~http://yulin10.bokee.com/2544792.html
  • 原文地址:https://www.cnblogs.com/berkeleysong/p/3304196.html
Copyright © 2011-2022 走看看