將Visual Studio武裝到底

來源:互聯網
上載者:User

在Visual C++ 2005中,如何調用其它編譯器編譯cpp檔案呢? 換句話說,如何把其它編譯器整合到VC2005的IDE中呢? 本文介紹了一種簡單的方法。
在Visual C++ 2005中,如何調用其它編譯器編譯cpp檔案呢? 換句話說,如何把其它編譯器整合到VC2005的IDE中呢?

象ICC這樣的編譯器安裝之後會自動整合進來,要整合其他編譯器那還得自己動手。下面介紹一種簡單、淺層的“整合”方法。

你也許注意到了,在VC2005的IDE中是不能編譯單個.cpp檔案的,除非把它放在工程中。但是,我們可以通過調用外部工具實現編譯單檔案。

下面以調用G++為例說明如何編譯單個.cpp檔案。如果要編譯單個.c檔案,使用GCC即可,方法同理。

也許你現在還不知道G++。G++是GCC中的一員。GCC的含義是GNU編譯器集合(GNU Compiler Collection),包括C、C++、Objective-C、Fortran、Java、Ada連同與這些語言相配的庫等。GCC被譽為 “世界上最重要的軟體”。許多免費的編譯器都是GCC的移植版 — MinGW(Minimalist GNU for Windows)中攜帶的編譯器就是如此。

以MinGW為例,我們可以下載Dev C++, Dev C++目前最新版為4.9.9.2。安裝 Dev C++的同時就安裝了MinGW,其中包含了 G++ 3.4.2.

假設 Dev C++ 安裝在 D:/Dev-Cpp 目錄下。

下面我們在VC2005的菜單點擊 “工具(Tools) -> 外部工具(External Tools) -> 添加(Add)”。

分別填入:

標題(Title): GNU C++ Compiler

命令(Command): D:/Dev-Cpp/bin/g++.exe

參數(Arguments): -Wall -o $(ItemFileName) $(ItemFileName)$(ItemExt) -time

初始目錄(Initial directory): $(ItemDir)

再鉤選下面的"使用輸出視窗(Use Output window)".

說明:如果你已經把D:/Dev-Cpp/bin/目錄添加到系統內容變數中,那麼 Command指定為g++.exe即可。Cygwin同理。

這些參數只是一個參考。你可以查閱VC編譯器的宏設定你需要的參數。

乾脆順帶補充一下Digital Mars C++編譯器的參考參數設定:

標題(Title): Digital Mars

命令(Command): C:/dm/bin/dmc.exe

參數(Arguments): $(ItemFileName) $(ItemFileName)$(ItemExt)

初始目錄(Initial directory): $(ItemDir)

好,下面切換到main函數所在檔案,點擊工具(Tools)菜單下的“GNU C++ Compiler”開始編譯。

注意g++此時編譯的指是純C++程式,對於包含 int _tmain(int argc, _TCHAR* argv[]) 這類VC特有的C++程式自然是無法通過編譯的。

如果編譯沒有出錯,對於早期版本的g++而言,Output window是沒有任何輸出的。

而對於較新版本的g++,將輸出類似以下的資訊:

# cc1plus 0.67 0.22
# as 0.05 0.01
# collect2 0.36 0.19

這是 -time 報告的編譯過程中每個子過程所佔用的CPU時間。

當然,你還可以更改編譯參數,使輸出視窗輸出其他編譯資訊。

我們還可以通過添加外部工具來實現運行g++產生的程式的功能。步驟如下:

在VC2005的菜單點擊“工具(Tools) -> 外部工具(External Tools) -> 添加(Add)”。

分別填入:

標題(Title): Run as C++ Application

命令(Command): %systemroot%/system32/cmd.exe

參數(Arguments): /c $(ItemFileName).exe

初始目錄(Initial directory): $(ItemDir)

不要鉤選下面的“使用輸出視窗”和“退出時關閉”。

注意:cpp檔案必須放在工程中,g++產生的程式才能被運行!

用MinGW的g++編譯出的程式可以在沒有安裝MinGW的Windows系統上運行!

但是在Cygwin/gcc下編譯出來的程式,在windows執行必須依賴cygwin1.dll。

通過VC2005建立不帶先行編譯頭的Win32控制台應用程式空環境,這樣編譯出來的可執行檔也不是放在哪台機子都能跑的。 但是常規空環境可以做到。

下面講講如何設定快速鍵。

點擊菜單中的"工具->自訂",

點擊右下角的 "鍵盤",

點擊 "按快速鍵" 下面的文字框,

按下 Shift + Ctrl + F7, 如果這個快速鍵已經分配給了其他的命令,更換一個即可。

在"顯示命令包含" 中填入“工具.外部命令6", 再點擊 “分配” 按鈕.

點"確定",再點“關閉”.

這樣就給 GNU C++ Compiler 分配了快速鍵 Shift + Ctrl + F7

注意剛才是在GNU C++ Compiler 位於 外部工具菜單的第6項的情況下,在"顯示命令包含" 中填入“工具.外部命令6"!

同理,我們可以給 Run as C++ Application 分配一個快速鍵。

再講講如何分配一個工具條。

點擊菜單中的"工具->自訂", 點擊 "工具列" 選項卡.

點擊“建立”,

在工具列名稱中填入“g++”,

切換到 "命令" 選項卡.

點擊 "類別" 中的 "工具",

在右邊的命令把 “外部命令6” 拖動到剛才建立的g++工具條上.

先不要關閉 "自訂" 對話方塊.

下面單擊g++工具條上的 GNU C++ Compiler 按鈕

再點擊自訂 對話方塊 中的 “修改選中的內容”按鈕,設定工具條中按鈕的名稱和文字等屬性。

Run as C++ Application 也可以通過這種方式放到g++工具條中。

但是若想把g++的輸出結果輸出到錯誤清單,或者是用VC的IDE來調試g++產生的程式,應該是絕無可能了。

g++的錯誤提示比VC要智能得多,這有利於我們快速地找到問題的根源。

如果感興趣,你還可以把make.exe等添加到VC2005的外部工具中,以實現編譯整個工程的目標。當然,在工程中少不了makefile.

GDB.exe也是可以整合進來的,不過不要忘了參數(Arguments)應為 -g -Wall -o $(ItemFileName) $(ItemFileName)$(ItemExt) -time,其中參數 -g 產生調試資訊。GNU 調試器可利用該資訊。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.