如何用命令行編譯c++程序


     作為程序員,如果僅僅只懂得如何在IDE上拖控件寫程序,而不知道如何直接通過編譯器編譯程序的話。雖然說也沒啥大不了的,但是如果掌握了手動編譯的技能,那肯定會是一種炫技般的存在。從客觀的角度來講,一方面,這種技能幫你在同事或同學面前體現在自己的編程方面的“骨灰級”地位。另一方面,這種脫離了IDE的編譯過程在你刷題的時候能幫你擺脫很多IDE上的惱人事故。

     實際上,網上一找,確實有不少這個方面的文章,不過好多都是基於32位的win7或者win8的系統的,很不巧的是,本人的電腦是64位的win10系統。在經歷了很多次失后才終於將代碼編譯跑通。真是一把辛酸淚啊。下面就介紹下如何在64位win10系統中用cmd+notepad進行編譯c++程序。

    1)設置環境變量:我們知道,一般的C/C++程序開發經歷三個過程:源代碼的編輯——編譯生成.obj文件——鏈接生成.exe文件。那么在這個過程中起到關鍵作用的就是編譯器了,也就是我們要找到c++的編譯器。如果你已經安裝好visual studio的話,那就直接在文件中找就行。如果沒有安裝相應的安裝包,那么我也會介紹另一種方法。先說已經安裝VS的情況:找到文件的安裝目錄底下,如E:\各種軟件的安裝目錄\VS2015,具體要看你自己的軟件安裝目錄。而且基本上所有的VS版本,目錄的名稱都是幾乎一致的,所以不用擔心安裝的版本路徑名稱會不一致的問題。如果找到的話,你應該能看到:

    找到VC這個文件夾,當然你還能看到VB,VC#等,這些文件夾里包含了相關的語言環境包等,不用管,直接找到VC里的bin文件夾,然后將路徑E:\各種軟件的安裝目錄\VS2015\VC\bin加到系統的環境變量中去。至於環境變量怎么弄的話,找到我的電腦,右鍵屬性,然后找到高級系統設置->環境變量->系統變量->Path,新建一個,然后把路徑添加進行就行。

    這樣做的目的,其實就是要讓系統知道編譯器在哪里,因為環境變量就是操作系統執行命令時的默認檢索路徑。有了這個環境變量的話,我們的電腦就能在指定的文件夾里找相應的文件。例如要尋找a.exe,就直接在命令行中輸入a.exe就行,不用再將絕對路徑的全部寫進去。

    如果你沒有安裝VS,那么你起碼要有VC,如果你說你啥都沒安裝怎么辦,那。。。。。那你還當啥程序員啊。。。。。。反正就是默認已經安裝了VC的情況下,找到路徑,如D:\Program Files\Microsoft Visual Studio\VC98\Bin,顯然這也是我們需要的編譯器的路徑。編譯程序除了需要編譯器外,還需要提供系統庫文件.lib,系統頭文件。對應的路徑在VC98文件夾中有相應的Lib和Include文件夾。下面也是要進行環境變量的設置,為了防止出問題,我們還需要找到VC98同級路徑下的Common文件夾里的MSDev98\Bin,找找看有沒有mspdb60.dll文件,如果有的話就直接將其路徑,如D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin和我們的D:\Program Files\Microsoft Visual Studio\VC98\Bin路徑兩個都加入到環境變量中。接着我們寫一個批處理文件來導入相應的變量。寫一個文本如下

INCLUDE = D:\Program Files\Microsoft Visual Studio\VC98\Include  

LIB = D:\Program Files\Microsoft Visual Studio\VC98\Lib 

保存為Path.bat,然后運行就行。

 

通過上面的設置,我們在環境變量中加入了編譯器的路徑,為了測試下是否成功,可以在開始->cmd中輸入cl,看看是否有類似的窗口顯示

有的話就說明成功了。

 

2)編程程序調試

雖然環境變量設置不太一樣,但是上面兩種情況的結果是大致一樣的,因此下面按着第一種情況,也就是有VS的編譯器的配置的時候來進行測試。

打開notepad,寫上代碼如下:

#include <iostream>

using namespace std;

int main()
{
cout<<"Hellow World"<<endl;
while (1){}
return 0;
}

在任意的一個盤里,如F盤保存為test.cpp。然后打開cmd,輸入 vcvars32.bat。接着要轉到我們的代碼的保存路徑下,如F:,這時直接這輸入F:

顯示如下:

然后輸入cl /EHsc test.cpp會出現如下:

哈哈,看到/out:test.exe了有木有。直接打開我們的F盤根文件夾,看看有沒有exe文件!運行下:

是不是很有成就感!

 

 

有幾點可以稍微注意下:1、只有2009以后的版本,在命令行編譯時才需要先執行“vcvars32.bat”,之前的版本就不需要了。

                               2、Visual Studio 2012以前的命令行編譯參數一般用cl -GX xxx.cpp,2012以后建議用cl -EHsc xxx.cpp

 


免責聲明!

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



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