Linux Programming, Language C 3 – MAKE

上两篇我们讲了GCC编译器、GDB调试器,现在我们讲讲MAKE。

GNU MAKE

在软件开发中,make是一个工具程序(Utility software),经由读取叫做“makefile”的文件,自动化建构软件。
它是一种转化文件形式的工具,转换的目标称为“target”;与此同时,它也检查文件的依赖关系,如果需要的话,它会调用一些外部软件来完成任务。它的依赖关系检查系统非常简单,主要根据依赖文件的修改时间进行判断。大多数情况下,它被用来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件。
它使用叫做“makefile”的文件来确定一个target文件的依赖关系,然后把生成这个target的相关命令传给shell去执行。

它的作用功能和集成开发环境是一样的。
Continue Reading…

Linux Programming, Language C 2 – GDB

我们在上一篇提到了GNU编译器 – GCC。
GCC用于编译程序,而Linux的另一个GNU工具gdb则用于调试程序。

GDB调试器

GNU侦错器(GNU Debugger,缩写:GDB),是GNU软件系统中的标准侦错器,此外GDB也是个具有移携性的侦错器,经过移携需求的调修与重新编译,如今许多的类UNIX操作系统上都可以使用GDB,而现有GDB所能支持除错的编程语言有C、C++、Pascal以及FORTRAN。
GDB具备各种侦错功效,能针对计算机程序的运行进行追踪与警告,使用GDB的除错人员可以监督及修改程序的内部变量值,甚至监督与修改独立于主程序运作外,以独立个体型态调用(调用使用)的函数。

和所有常用的调试工具一样,gdb提供了以下功能:
1.监视程序中变量的值
2.在程序中设置断点
3.程序的单步执行

和GCC一样,GDB也是用命令来完成的。
Continue Reading…

Linux Programming, Language C 1 – GCC

在前一篇的GetStarted里,我们提到了Linux下的C编程离不开编译(Compile)、链接(Link),还有调试(Debug)。

现在我们重点来说一下,怎么在不依赖集成开发环境(IDE)的情况下,使用GCC编译器进行C编程。

Hello World的C语言源代码:

GCC编译

运行

GCC编译器

GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果计算机Mac OS X操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。
GCC 原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。原本用C开发,后来因为LLVM、Clang的崛起,令GCC更快将开发语言转换为C++。
Continue Reading…