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

来源:互联网 发布:数据平滑的方法是 编辑:程序博客网 时间:2024/05/27 12:21

使用语言:C/C++

开发环境:VC++6.0

概述

这篇文章简单介绍了如何使用CL.EXELINK.EXE编译并连接一个程序。

CL.EXE的简单介绍

      CL.EXEVC++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.objtest2.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

 


 
原创粉丝点击