C

C 知识量:16 - 74 - 317

9.4 编译多源代码文件><

UNIX- 9.4.1 -

在UNIX系统中需要安装UNIX C编译器cc,最初的cc已经停用,但是许多UNIX系统都给cc命令起了一个别名用作其他编译器命令,例如:gcc或clang。假设file1.c和file2.c是两个内含C函数的文件,可以通过下面的命令将它们编译并生成一个名为a.out的可执行文件:

cc file1.c file2.c

另外,此过程还生成两个名为file1.o和file2.o的目标文件。如果后来改动了file1.c,而file2.c不变,可以使用下面的命令编译第1个文件,并与第2个文件的目标代码合并:

cc file.c file2.o

Linux- 9.4.2 -

Linux系统通常安装GNU C编译器GCC。假设file1.c和file2.c是两个内含C函数的文件,可以使用下面的命令将它们编译并生成名为a.out的可执行文件:

gcc file1.c file2.c

另外,此过程还生成两个名为file1.o和file2.o的目标文件。如果后来改动了file1.c,而file2.c不变,可以使用以下命令编译file1.c文件,并与第2个文件的目标代码合并:

gcc file1.c file2.o

DOS命令行编译器- 9.4.3 -

绝大多数DOS命令行编译器的工作原理和UNIX的cc命令类似,只是名称不同而已。其中一个区别是,对象文件的扩展名是.obj,而不是.o。一些编译器生成的不是目标代码文件,而是汇编语言或其他特殊代码的中间文件。

IDE编译器- 9.4.4 -

Windows和苹果的Macintosh系统使用的集成开发环境中的编译器是面向项目的。项目描述的是特定程序使用的资源,而资源包括源代码文件。

在IDE中,编译器要创建项目来运行单个文件程序;对于多文件程序,要使用相应的菜单命令,把源代码文件加入一个项目中。

许多IDE不用在项目列表中列出头文件,因为项目只管理使用的源代码文件,源代码文件中的#include指令管理该文件中使用的头文件。需要注意:Xcode要在项目中添加头文件。

使用头文件- 9.4.5 -

如果将main()函数放在第1个文件中,把函数定义放在第2个文件中,那么第1个文件仍要使用函数原型来声明第2个文件中的函数。但是,如果将函数原型放在头文件中,就不用在每次使用函数文件时都写出函数的原型。其中,C标准库就是这样做的,例如,I/O函数(输入/输出函数)原型放在了stdio.h中,在main()函数中,使用#include指令包含stdio.h后,就不必再使用函数原型来声明I/O函数了。

此外,程序中经常用C预处理器定义符号常量,可以把#define指令也放入头文件中,然后在每个源文件中使用#include指令包含该文件即可。

把函数原型和已定义的字符常量放在头文件中是一个良好的编程习惯。

示例:自定义了一个名为me.h的头文件,使用#include指令的语法如下:

#include <stdio.h>
#include "me.h"

注意:通常不能使用“<”和“>”来包含自定义的头文件名,这种方式适用按默认路径查找头文件,对于自定义的头文件应当使用双引号指明文件具体路径。