none
如何从控制台调用cl.exe,而不是使用vcvarsall.bat进行编译 RRS feed

  • 问题

  • 据尝试,VC6默认安装后,IDE会自动将编译器的相关参数写到环境变量中去,但从那以后,便发明了看似更好的vcvarsall.bat。
    有时,比如说需要创建一个进程,用来编译一个cpp文件,先运行vcvarsall.bat、再运行cl.exe是无效的,这时就需要直接运行cl.exe,请问有什么解决方案?

    参考做法(不完美,求更完美的):

    1、从网上看到了一个使用cl.bat进行编译的做法:

    echo off
    call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
    cl.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

    但这样做有两个问题,第一就是当我使用几次后,该命令便提示错误,不能再使用;第二就是最多只能使用9个参数,有时参数可能会超过9个的

    2、将各种各校的头文件、静态库之类的文件,通通放到PATH环境变量中,但不知道应该放入哪些环境变量。有时32位和64位两种库混杂在一起,会发生难以查觉的错误

    3、直接使用cl.exe,进行各种头文件和静态链接库文件的配置,这个就更加复杂了……

    2012年7月26日 12:30

全部回复

  • 您好,

    您可以尝试用如下方法使用cl.exe编译:

    1.在“我的电脑--属性--高级--环境变量”中, 添加如下变量:

    INCLUDE

         X:\Program Files\Microsoft Visual Studio\VC98\Include

    LIB

     X:\Program Files\Microsoft Visual Studio\VC98\Lib

       X:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;X:\Program Files\Microsoft Visual Studio\VC98\Bin

     X表示安装盘符,注意这里是两个路径,因为cl.exe要用到MSDev98\Bin目录下的MSPDB60.DLL

     如果已经存在这些变量,则把以上值分别加在对应的变量值的后面,注意在添加前用分号隔开。

    2.重启电脑

    3.打开命令提示符,输入:

    cl <文件名>.cpp

    回车后就会在目录下生成<文件名>.exe<文件名>.obj


    Damon Zheng [MSFT]
    MSDN Community Support | Feedback to us

    2012年7月31日 6:50
    版主
  • cl.exe /help

    看看各种参数说明, 很简单的.

    2012年8月1日 6:09
  • 能否使用VC10作示范?

    2012年8月1日 12:18