-
Notifications
You must be signed in to change notification settings - Fork 0
Alick Zhao edited this page Apr 13, 2013
·
3 revisions
% C 程序设计语言 % Alick Zhao % 2012/09/16
C 语言是一门很有历史的程序设计语言, 也是如今最流行(使用广泛)的语言之一。
C 语言诞生于1972 年,设计者是 AT&T Bell 实验室的 Dennis M. Ritchie。 它的最初应用就是重写了Unix。
C语言的特点是高效、灵活。它的移植性很好。因为它兼有高级语言和 汇编语言的特点,所以它有时候会被称为“中级语言”。 它属于过程式编程语言。
指针是C语言的精华。
有一些实用工具值得一提:
- splint: lint tool
- cproto: 自动生成头文件中所需的原型声明
- cdecl: 识别复杂原型声明 (读音:see-deck-ll)
- valgrind: 检测内存泄漏
- ccache: 用缓存加速编译
- colorgcc: 彩色化 gcc/g++/ccache 的输出
当项目很小时,直接敲 gcc
命令或者手写 Makefile 用 make
编译即可。
当项目文件较多、目录结果复杂后,自动化构建系统可以减轻开发人员的负担。
GNU Autotools 是 GNU 的构建系统,包括 autoconf 等用于生成 ./configure
文件用于寻找构建依赖的工具和库,automake 自动生成 Makefile 等。要查看 GNU 构建系统的手册,使用 info autoconf
。自动化得到Makefile的流程图参考info autoconf
的Making configure Scripts一节。
CMake 是另一个流行的构建系统,它能在 Unix 平台上生成 Makefile,还能生成许多 IDE (包括 MS VC)的项目文件。使用 CMake 时需要手写 CMakeLists.txt
文件。
GNU Autotools:
mkdir build
cd build
../configure # enable/disable components with --with-xxx option
make
CMake:
mkdir build
cd build
cmake .. # enable/disable components with options like -DENABLE_XXX=On/Off
make
- “始终将 -l 函数库选项放在编译命令行的最右边。”编译命令行上静态链接库的顺序是非常重要的。符号通常以从左到右的顺序去解析。如果在自己代码前引入静态库,那么事实上不会从函数库 中提取任何符号。
本作品采用知识共享署名-相同方式共享 4.0 Unported许可协议进行许可。