第四章 UNIX下的C语言开发环境
1. gcc 与 gdb
UNIX和C语言
C 是一种在 UNIX 操作系统的早期就被广泛使用的通用编程语言,它最早是由贝尔实验室的 Dennis Ritchie 为了 UNIX 的辅助开发而写的。
C 是所有版本的UNIX上的系统语言。
几乎任何一种计算机上都有至少一种能用的 C 编译器; 并且它的语法和函数库在不同的平台上都是统一的。
80年代末期美国国家标准协会 (American National Standards Institute)发布了一个被称为 ANSI C 的 C 语言标准,这保证了在不同平台上的C的一致性。
2
1. gcc 与 gdb
GNU C编译器
GNU C 编译器(gcc)是一个全功能的 ANSI C 兼容编译器,它是所有UNIX系统可用的C编译器。
gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
3
1. gcc 与 gdb
gcc编译过程:
预处理,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
编译,就是把C/C++代码“翻译”成汇编代码。
汇编,将第二步输出的汇编代码翻译成符合一定格式的机器代码,。
链接,将上步生成的目标文件和系统库的目标文件和库文件链接起来,最终生成了可以在特定平台运行的可执行文件。
4
1. UNIX下的C语言开发环境
gcc遵循的文件类型规定
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,. 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
5
头文件
头文件是用来提供常量的定义和系统和函数调用的声明,这些头文件通常放在/usr/include和其子目录中。根据不同的Linux版本,头文件可能放在/usr/include/sys和/usr/include/linux.
#include <>
库函数
库函数是一些预先编译好的函数的集合,这些函数可以有很好的重用性。通常来讲,它们包含有相关的函数集合来完成一项常用任务。典型的库函数有屏幕处理函数
(curses和ncurses库)和数据库访问函数(dbm库)。
标准系统函数通常存放在/lib和/usr/lib中。C编译器需要被告知搜索哪个库,否则缺省情况下只搜索标准库。
Examples are /usr/lib/ and /usr/X11/lib/ for the standard C library and the X11 library
On a typical Linux system, the shared version of the standard math library is /usr/lib/
静态库
与windows的区别
1. gcc 与 gdb
gcc的使用
gcc最基本的用法:
gcc [options] [filenames]
options就是编译器所需要的参数;
filenames给出相关的文件名称;
/* */
#include <>
int main(int argc, char **argv){
printf(“Hello, World!\n”);
return 0;
}
例:
$ gcc
$ ./helloworld
$ Hello, World!
9
1. gcc 与 gdb
gcc选项
-Wall:允许所有有用的警告;
-o:定义输出文件;
-c:,不链接;
-I:设置头文件的搜索路径;
-L:设置库文件的搜索路径;
-O:O1,O2,O3,O4,O5优化级别;
-g:gdb调试用,在可执行程序中包含标准调试信息;
-w:关闭所有警告;
-E:完成预处理/预编译停止;
10
第四章 UNIX下的C语言开发环境 来自淘豆网www.taodocs.com转载请标明出处.