VC6命令⾏编译配置
对于大多数在windows写windows C/C++应用程序的人可能用的都是微软提供的VC++6.0或Visual Studio集成开发环境,但是对想为了更好地理解程序编译连接过程和习惯如linux般在命令行下工作的人来说,我们也可以配置使用命令行编译程序。
事实上,基本的程序编译链接工具为了一个编译器和链接器——编译器负责把C/C++代码编译成目标二进制代码(对微软编译器一般生成.obj),链接器负责把目标二进制代码和各种C/C++提供的标准库(如C语言标准库的C runtime;libc.lib)链接起来,再加上特定的启动代码就生成了一个标准的window. exe或dll程序。而微软VC++6.0或Visual Studio集成开发环境所做的工作就是在这个编译器和链接器上构建一个用于编辑代码的IDE、编译链接参数配置和调试输出的GUI界面、便于项目集成管理的工作空间(VC6,对应为.dsw文件和.dsp文件)或解决方案(Visual Studio,对应文件为.sln文件)。
那么下面我们具体看一下微软C/C++的编译器和链接器,微软采用cl.exe和link.exe来编译和链接程序,cl.exe又可兼做编译器(complie)和链接器(link)的作用。同带GUI界面的集成开发一样,在命令行下需要一个管理多个文件编译的工具,微软用的是nmake.exe。笔者自己电脑XP上VC安装在D盘,找到安装位置如下:
打开Common下MSDev98文件夹如下:
打开VC98文件夹如下:
进入个文件各个文件夹查看,可知微软提供的cl.exe,link.exe,nname.exe程序都存在VC98的Bin文件下
若此时切换到命令行(在附件中打开或Win+R运行cmd),敲入cl提示找不到程序的,此时要做的是把VC98的Bin目录加到系统目录。再敲入cl可能会出现提示找不到MSPDB60.DLL的错误,这是因为
改cl.exe的支持工具找不到,,看到前面有Common下MSDev98,自然想到到系统环境变量编辑处添加系统目录,如下(我的电脑--》查看系统信息--》高级-》环境变量)
可以在系统变量或用户变量中添加,笔者习惯在用户变量中添加系统目录,在用户变量中找到
PATH变量(若没有则新建),在原有变量中加
。则此时调入新的命令行窗口 读入新的环境变量,注意若以前此时直接打开的命令行窗口敲入cl还是不行,必须重新开cmd或新建cmd窗口读入新的环境变量才能运行。
下面新建一个新的a.c程序如下
编译cl /Gx a.c
此时提示无法找到或连接stdio.h,这是因位编译器找不到要包含头文件或链接的库文件,此时只需要
按照之前的步骤在用户变量中添加include位置和lib位置
此时编译程序:cl /Gx a.c,可以看到生成了a.obj和a.exe,运行生成的a.exe,成功!
至此,命令行配置完成。
注:命令行编译使用,请参看相关命令说明
![](https://img2022.cnblogs.com/blog/1942581/202206/1942581-20220608091124637-1084165689.png)