您的位置:首页 > 其它

CL.EXE与LINK.EXE的使用(1)

2007-12-29 22:25 204 查看
使用语言:C/C++
开发环境:VC++6.0
概述
这篇文章简单介绍了如何使用CL.EXE与LINK.EXE编译并连接一个程序。
CL.EXE的简单介绍
CL.EXE是VC++6.0默认的编译器。该编译器可以在命令行下使用,对源代码进行编译,生成目标文件。最简单的命令格式如下

CL 源文件名称

该源文件被CL编译后生成目标文件,目标文件与源文件的文件名称相同。
假设有一个cpp的程序文件,如果使用命令行编译,那么就需要使用vc++的编译器——CL.EXE。

#include "windows.h"
#include "stdio.h"

void main()
{
printf("hello world/n");
}

如果要生成OBJ文件,可以执行以下命令。由于我的文件test2.cpp是在c:/1/test2下存放,所以我首先把当前路径切换到了c:/1/test2之下。

图表 1
执行cl test2.cpp之后,生成了test2.obj和test2.exe文件。请注意,默认情况下CL.EXE编译器在执行完编译过程之后会自动调用LINK.EXE把所有生成的OBJ文件连接起来,生成EXE文件。因此,在这里你所看到的结果不但有CL生成的test2.obj,而且还有CL自动调用LINK生成的test2.exe。
那么,如果我只想编译,而不连接应该怎么做呢?我给出CL命令的第二种格式。

CL [CL选项] 源文件名称

“[ ]”中的内容表示“CL选项”是可有可无的。编译器CL的选项有很多,这里不再一一列举,如果要仅编译而不连接,使用“/c”编译器选项。

图表 2
比较图表1和图表2可以发现第二次编译由于使用了“/c”选项,所以没有生成test2.exe。
LINK.EXE的简单介绍
在完成编译之后,使用LINK.EXE程序把所有的obj文件连接起来,生成exe可执行文件。CL程序与LINK程序之间的关系如下图所示。

从图中可以看出CPP作为CL.EXE的输入,经过CL.EXE的处理之后,产生的输出文件为OBJ。然后,CL.EXE的输出OBJ文件作为了LINK.EXE的输入文件,经过LINK的处理产生了EXE文件。图3是使用LINK命令连接OBJ文件。

图表 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: