如何用在命令列下使用VS編譯器

工程師WWW發表於2013-10-27

首先宣告:高手請路過即可,謝謝支援!

    現在恐怕很多人已經沒有試過在命令列下使用微軟的編譯器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:\。具體程式碼如下:

  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目錄下即可。

相關文章