如何在Windows命令行(DOS界面)中調用 編譯器 來編譯C/C++源程序


首先說明一下背景: 為什么要在DOS界面編譯C/C++源程序?有很多現成的開發環境(IDE)如:vs, vc++等,這些開發環境集成了編譯,調試,使用起來很方便,而且圖形化操作界面,簡潔明了。但是在開發環境中編譯程序,需要建立一個工程,當我只需要編譯單個小的測試文件時,比喻 輸出helloword!這樣的單個小文件,在IDE中編譯,仍然需要建立一個工程,這有點麻煩;所以在DOS界面中調用編譯器來編譯一個單獨的C/C++文件,就顯得很方便了;

 

如何在DOS界面中調用 編譯器 來編譯C/C++源程序?(這里以調用vs2012的編譯器 cl.exe 來編譯test.c文件為例)

第一種方法:手動設置環境變量 (添加系統變量,使系統能夠找到編譯器和相應的鏈接文件)

(注:編輯環境變量時,環境變量的路徑最好不要直接復制文字來編輯,這樣添加的路徑往往無效,最好是新建變量后,點擊“瀏覽目錄”添加變量路徑)

1,編輯系統變量PATH,在后面加入( 每個變量后面要用;隔開
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin    (引入cl 編譯器)
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE (引入mspdb100.dll文件,如果不加這個路徑到系統變量中,也可以直接將mspdb100.dll文件復制到上面那個路徑的文件夾下)
 
2,新建環境變量
INCLUDE: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include (告訴系統include文件的位置)
 
3,新建環境變量
LIB:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib (告訴系統lib庫文件的位置)
 
4,打開cmd窗口, 進入cpp文件目錄,如:cd C:\users\dell\Desktop, 然后輸入命令 cl test.c 運行,可能會提示如下錯誤:

“LINK:fatal error LNK 1104:cannot open file 'kernel32.lib“ ;

解決辦法: kernel32.lib是Windows系統文件,此文件在文件夾C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib 中,將其復制到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib 中;

5,再輸入命令 cl test.c 運行,會提示生成 test.exe, test.obj 文件,然后輸入test.exe 運行,就能輸出結果了
 
第二種方法:運行批處理文件 .bat 代替手動設置環境變量 (這里就顯示了批處理文件的作用了)
 
1,可以自己用記事本寫一段簡單的批處理文件.bat, 其內容就是設置環境變量,如下:
set path=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
set include=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include
set lib=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
 
如果不會寫,可以直接運行vs提供的批處理文件vcvarsall.bat (文件位置:C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\目錄下)
打開cmd窗口進入文件所在目錄:cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC,然后輸入文件名 vcvarsall.bat 運行;(每次關閉dos后,再打開,都要運行一次)
 
2,運行完  vcvarsall.bat 后,環境變量設置完成,再進入test.c 所在目錄 cd C:\users\dell\Desktop, 然后輸入命令 cl test.c 運行,會提示生成 test.exe, test.obj 文件,再輸入test.exe 運行,就能輸出結果了
 

 

 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM