命令行下cl.exe编译链接的问题及解决方法
cl.exe 是控制 Microsoft C 和 C++ 编译器以及链接器的工具。cl.exe 只能在支持 Microsoft Visual Studio 的操作系统中运行。 编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。 链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。
在windows命令行下,输入cl,若系统提示“'cl'不是内部或外部命令,也不是可运行的程序或批处理文件。”说明VS没有安装或者环境变量设置不正确。本机是已经安装了VS2010的,所以需要设置一下环境变量。在系统变量的Path路径下添加如下内容:“E:\Program Files\Microsoft Visual Studio 10.0\VC\bin”(结合VS的安装路径自行设置)。
在命令行输入cl时,出现“丢失mspdb100.dll”的问题时,需要把“E:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\mspdb100.dll”复制到“E:\Program Files\Microsoft Visual Studio 10.0\VC\bin\”下面。这样问题就得到解决了。
设置好后,这样就可以在命令行下输入cl就不会出错了。尝试运行如下命令:
cl E:\RE\hello.cpp /FaE:\RE\hello.asm出现错误“fatal error C1034: stdio.h: no include path set”,解决方法是在环境变量中新建LIB和INCLUDE变量,在LIB中设置如下值:“E:\Program Files\Microsoft Visual Studio 10.0\VC\lib”;在INCLUDE中设置如下值:“E:\Program Files\Microsoft Visual Studio 10.0\VC\include”
出现错误“fatal error LNK1104: cannot open file “kernel32.lib””解决方法是在环境变量中新建的LIB变量中增加值:“C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib”。
完成以上设置之后,就可以正常运行cl进行编译了。
cl E:\RE\hello.cpp /FaE:\RE\hello.asm /FeE:\RE\hello.exe执行以上命令,就会在E:\RE目录下生成hello.obj、hello.exe、hello.asm三个文件。