VC6命令行编译配置

对于大多数在windows上写windows C/C++应用程序的人可能用的都是微软提供的VC++6.0或Visual Studio集成开发环境,但是对想为了更好地理解程序编译链接过程和习惯如linux般在命令行下工作的人来说,我们也可以配置使用命令行编译程序。

事实上,基本的程序编译链接工具为一个编译器和链接器——编译器负责把C/C++代码编译成目标二进制代码(对微软编译器一般生成.obj文件),链接器负责把目标二进制代码和各种C/C++提供的标准库(如C语言标准库的C runtime:libc.lib)链接起来,再加上特定的启动代码就生成了一个标准的windows exe或dll程序。而微软VC++6.0或Visual Studio集成开发环境所做的工作就是在这个编译器和链接器上构建一个用于编辑代码的IDE、编译链接参数配置和调试输出的GUI界面、便于项目集成管理的工作空间(VC6,对应为.dsw文件和.dsp文件)或解决方案(Visual Studio,对应文件为.sln文件)。

那么下面我们具体看一下微软C/C++的编译器和链接器,微软采用cl.exe和link.exe来编译和链接程序,cl.exe又可兼做编译器(compile)和链接器(link)的作用。同带GUI界面的集成开发环境一样,在命令行下需要一个管理多个文件编译的工具,微软用的是nmake.exe。笔者自己的电脑XP上VC6安装在D盘,找到安装位置打开如下

VC6命令行编译配置_第1张图片

打开Common下MSDev98文件夹如下

VC6命令行编译配置_第2张图片

打开VC98文件夹如下

VC6命令行编译配置_第3张图片

进入个文件各个文件夹查看,可知微软提供的cl.exe,link.exe,nmake.exe程序都存在VC98的Bin文件下

若此时切换到命令行(在附件中打开或Win+R运行cmd),敲入cl提示是找不到程序的,此时要做的是把VC98的Bin目录加到系统目录中,再敲入cl可能会出现提示找不到MSPDB60.DLL的错误,这是因为该cl.exe的支持工具找不到,看到前面有Common下MSDev98,自然想到支持文件在其下Bin文件夹中,果然在其中找到MSPDB60.DLL。因此我们还要做的就是把MSDev98的Bin目录加到系统目录下

找到系统环境变量编辑处添加系统目录,如下(我的电脑->查看系统信息->系统属性->高级->环境变量)

VC6命令行编译配置_第4张图片

可以在系统变量或用户变量中添加,笔者习惯在用户变量中添加系统目录,在用户变量中找到PATH变量(若没有则新建),在原有变量中加上D:\XP\Microsoft Visual Studio\Common\MSDev98\Bin和D:\XP\Microsoft Visual Studio\VC98\Bin目录。此时调入新的命令行窗口读入新的环境变量,注意若以前此时直接在以前打开的命令行窗口敲入cl还是不行,必须重新开cmd或新建cmd窗口读入新的环境变量才能运行。

下面新建一个新的a.c程序如下

#include
int main(int argc, char *argv[])
{
    printf("cl, link and nmake test");
    return 0;
}

编译:cl /Gx a.c 

此时提示无法找到或链接stdio.h,这是因为编译器找不到要包含的头文件或链接的库文件,此时只需要按照之前的步骤在用户变量中添加include位置和lib位置

INCLUDE=D:\XP\Microsoft Visual Studio\VC98\MFC\Include;D:\XP\Microsoft Visual Studio\VC98\Include和

LIB=D:\XP\Microsoft Visual Studio\VC98\Lib;D:\XP\Microsoft Visual Studio\VC98\MFC\Lib

此时编译程序:cl /Gx a.c,可以看到生成了a.obj和a.exe,运行生成的a.exe,成功!

至此,命令行配置完成


注:

命令行编译的使用,请参考相关命令说明

1、在cmd敲入 cl -help 和link  -help及nmake -help查看相关参数和用法

2、有些电脑装的盗版VC6会缺少MSPDB60.DLL,在此下载放入*\Microsoft Visual Studio\Common\MSDev98\Bin目录即可

3、对于Visual Studio的配置和VC6配置相似,在此恕不赘述!


原创,转载请注明来自http://blog.csdn.net/wenzhou1219

你可能感兴趣的:(Windows)