首先,把源代码编译为目标文件

为了得到所有源文件的目标代码,可以输入以下命令:

首先,把源代码编译为目标文件 - 图1

*.c会匹配当前目录下所有的C源文件,-c告诉编译器你想为所有源文件创建目标文件,但不想把目标文件链接成完整的可执行程序。

然后,把目标文件链接起来

既然你有了一批目标文件,就可以用一条简单的编译命令把它们链接起来。这次要把目标文件的名字给编译器,而不是C源文件的名字。

首先,把源代码编译为目标文件 - 图2

编译器能够识别这些文件是目标文件,而非源文件,因此它会跳过大部分编译步骤,直接把目标文件链接为一个叫launch的可执行程序。

和以前一样,现在你有了一个编译好的程序,同时你也得到了一批目标文件,可以在需要时随时把它们链接起来。如果要修改其中一个文件,只需要重新编译这一个文件,然后重新链接程序即可:

首先,把源代码编译为目标文件 - 图3

虽然必须输入两条命令,但节省了很多时间。

首先,把源代码编译为目标文件 - 图4

 

首先,把源代码编译为目标文件 - 图5

首先,把源代码编译为目标文件 - 图6练习

这里的代码用来控制飞船的引擎管理系统(engine management system),每个文件都有一个时间戳。为了得到最新的ems程序,你认为需要重新创建哪些文件?圈出你认为需要更新的文件。

首先,把源代码编译为目标文件 - 图7

而在厨房中,厨师也需要确保他们的代码是最新的。查看文件的更新时间,哪些文件需要更新?

首先,把源代码编译为目标文件 - 图8

 

首先,把源代码编译为目标文件 - 图9练习

这里的代码用来控制飞船的引擎管理系统(engine management system),每个文件都有一个时间戳,你圈出了需要重新生成的文件,重新生成它们就能得到最新的ems可执行文件。

首先,把源代码编译为目标文件 - 图10

而在厨房中,厨师也需要确保他们的代码是最新的。查看文件的更新时间,哪些文件需要更新?

首先,把源代码编译为目标文件 - 图11