vs编译器cl使用

来源:互联网 发布:天府商品交易软件 编辑:程序博客网 时间:2024/05/16 15:58
现在恐怕很多人已经没有试过在命令行下使用微软的编译器cl来编译和运行程序了,VS提供的IDE环境能够很方便的组织程序。但是个人觉得明白编译链接的来龙去脉对于理解程序和程序的运行机制是很有好处的。

      自从学习编程语言以来,很少用过cmd来编译和运行程序。前些日子在看关于Linux的书籍,在终端上用过一段时间后,后来也想在windows的命令行上试试。首先,我们需要知道,在windows系统下的命令行下可以用cl命令来编译程序,但是前提是需要已经安装了VC。对于VC6,在安装的时候可以勾选安装环境变量来解决这个问题。对于VC6以上的版本,则需要设置环境变量。

      好吧,废话少说,我以安装了VS2005(我的安装路径为E:\Program Files\VS),系统为WindowsXP为例。

      首先你可以在命令行下输入cl命令。结果如下图:

      

      这可能说明两个问题,第一是你根本没有安装VC或者VS;第二就是没有设置好,我们这里要解决的问题是第二类。

      1.右键我的电脑->属性->高级->环境变量->Path->编辑。如下图所示。

      

      在变量值(V)一行的后面添加;E:\Program Files\VS\VC\bin。注意,分号是为了与前面的路径相互隔开。

      2.现在可以去命令行试下cl命令了。会发现cl命令还是用不了,提示缺失dll文件。

      

      mspdb80.dll这个库文件存在于安装路径下的E:\Program Files\VS\Common7\IDE中,为了能找到该库文件,我们同样设置环境变量,如1.在Path的变量值后面添加;E:\Program Files\VS\Common7\IDE。重新用dos命令行运行一下cl命令。现在可以用了,会出现版本,用法等提示。如下图:

      

     3.现在,建立一个C++程序,以最简单最熟悉的Hello world为例。程序命名为hw.cpp,路径为E:\。具体代码如下:

[cpp] view plaincopy
  1. #include <iostream>  
  2.   
  3. int main()  
  4. {  
  5.     printf("Hello, World!\n");    
  6.     return 0;  
  7. }  

      运行dos,把目录改为当前程序所在的E目录下,运行命令cl  hw.cpp。结果还是不能成功编译,提示不能打开iostream,因为找不到路径。

      

      按照前面的思路,我们把安装路径下的E:\Program Files\VS\VC\include和E:\Program Files\VS\VC\lib也通过环境变量设置加入。具体操作方法是,我的电脑->属性->高级->环境变量->新建。变量名自己设置,我把它设为include,然后变量值为E:\Program Files\VS\VC\include。同样新建一个环境变量来加入lib的路径,变量名设为lib,变量值为E:\Program Files\VS\VC\lib。(如果不包含路径E:\Program Files\VS\VC\lib,用cl编译会提示缺失库文件。)

      再次去dos下运行cl命令。然后运行程序。

      这次,我的程序运行成功了!很熟悉的Hello World!。

      

      4.如果你能通过编译,但连接时候提示LINK : fatal error LNK1104:无法打开文件“kernel32.lib”,则把C:\Program Files\MicrosoftSDKs\Windows\v5.0A\Lib目录下的kernel32.lib拷贝到E:\Program Files\VS\VC\lib目录下即可。