1. 程式人生 > >Ecplise編譯Cygwin環境、使用CDT外掛開發C/C++

Ecplise編譯Cygwin環境、使用CDT外掛開發C/C++

藉助Ecplise的強大功能,我們可以通過給Ecplise增加CDT外掛來開發C/C++程式,下面是我配置CDT外掛的總結過程,主要為了方便以後練習一些Demo程式時使用。編譯環境採用的是Cygwin。使用Ecplise4.2 + CDT8.1.2 +Cygwin2.774。建議先閱讀第6條的注意事項。

強烈介意先安裝配置cygwin再安裝cdt外掛

一、具體安裝步驟

為了保證安裝順利,請按以下步驟來進行。

1、安裝Cygwin

下載地址:http://cygwin.com/setup.exe 官網:http://cygwin.com/

下載好後,點選setup.exe進行安裝,出現如下圖所示介面

    點選“NEXT”後我們看到如下介面:

我們看到有三種安裝模式:

Install from Internet,這種模式直接從Internet安裝,適合網速較快的情況; 
Download Without Installing,這種模式只從網上下載Cygwin的元件包,但不安裝; 
Install from Local Directory,這種模式與上面第二種模式對應,當你的Cygwin元件包已經下載到本地,則可以使用此模式從本地安裝Cygwin。 
從上述三種模式中選擇適合你的安裝模式,這裡我們選擇第一種安裝模式,直接從網上安裝,當然在下載的同時,Cygwin元件也儲存到了本地,以便以後能夠再次安裝。選中後,點選“下一步”。

這一步選擇Cygwin的安裝目錄,以及一些引數的設定。預設的安裝位置是C:\cygwin\,你也可以選擇自己的安裝目錄,然後選擇“下一步”,

這一步我們可以選擇安裝過程中從網上下載的Cygwin元件包的儲存位置,選擇完以後,點選“下一步”,

這一步選擇連線的方式,選擇你的連線方式,然後點選下一步,會出現選擇下載站點的對話方塊,如下圖所示,

此步選擇第一個163提供的映象網站就可以,國內下載速度挺快,如果有其他映象,可以輸入URL後,點選“Add”進行新增,然後再在列表中選中。選擇完成後,點選“下一步”,進過下載幾個檔案後顯示如下介面

下面就在這個介面中下載我們需要編譯C/C++程式碼的Packages,我們只需要下載“Devel”分支下幾個包就可以了,

gcc, 
gcc-core, 
gcc-g++, 
gcc-mingw-core, 
gcc-mingw-g++, 
make , 
gdb, 
binutils。

在上圖的search框中輸入gcc,程式會自動進行搜尋,如下圖,通過選擇“Devel”分支下的包,找到安裝我們需要的包,然後點選Skip來選擇最新的安裝包

這是已經成功安裝最新版本包後的圖示,大家單擊“Skip”來選擇最新版本的安裝。

同理,輸入“make”後,選擇“Devel”分支下的包,下載如圖所示的包:

輸入“gdb”後,選擇“Devel”分支下的包,下載如圖所示的包:

輸入“binutils”後,選擇“Devel”分支下的包,下載如圖所示的包:

選完以後,我們選擇下一步,進入安裝過程,如下圖所示,

安裝的時間依據你選擇的元件以及網路情況而定。安裝完成後,安裝程式會提示是否在桌面上建立Cygwin圖示等,點選完成退出安裝程式。

2、配置Windows的環境變數

熟悉Java開發環境的都應該知道怎麼找到環境變數,實在不知道的去百度下吧。

將cygwin\bin目錄加入到環境變數PATH中。然後,開啟cmd命令列視窗,分別試一下gcc , g++命令。

如果顯示“訪問被拒絕” (access denied), 進入cygwin安裝目錄\bin下檢查g++.exe, gcc.exe是否只有1k大小,如果是,那麼檔案是符號連結,那麼把檔案重新命名一下(備份)。 然後把g++-3.exe(或者g++-4.exe)拷貝一份,重新命名為g++.exe。 把gcc-3.exe拷貝一份,重新命名為gcc.exe。  

3、下載Ecplise CDT外掛

下載地址:http://www.eclipse.org/cdt/downloads.php

參考:Ecplise外掛的安裝的四種方法。

或者通過Ecplise自動升級功能進行安裝,如下圖所示:

新增地址:http://download.eclipse.org/tools/cdt/releases/juno

4、配置Ecplise的C/C++開發環境

(1)設定Ecplise與Cygwin的路徑對映

按以下步驟開啟Ecplise:

Window -> Preferences->C/C++->Debug-> Common Source Lookup Path -> add  -> new "Path Mapping".

對映方法,如下圖:

eclipse中除錯時,由於GDB使用的unix格式的路徑,而eclipse使用的是windows路徑,導致找不到匹配的程式碼, 把linux的路徑對映windows的路徑:比如  /cygwin/c   對映成 C:\ 。

(2)配置C/C++的"Makefile Project",選擇“PE Windows Parser", 和”Cygwin PE Parser" 兩項。

5、在Ecplise中建立工程編寫C/C++程式碼

(1)建立C/C++工程

點選”Next“,顯示如下圖:

點選”Next“,顯示如下圖:

點選”Finish“完成建立。

當編寫好程式碼後,可以對你的工程進行編譯,點選“Project”選項下的"Builder Project"專案即可。

編譯後的工程,如下圖所示:

此時是成功編譯後“Consloe”控制檯的顯示畫面。

點選上面選中的,然後點選滑鼠右鍵,選擇“Run”,即可執行程式。此時控制檯即可打印出文字了。

到此我們就完成了Ecplise + CDT + Cygwin開發環境的配置,以後你就可以享用其方便的功能了。

6、常見問題

1、Eclipse下的CDT建立C++專案時候,不能自動生成includes資料夾

有兩種解決方法:

(1)開啟Window -> Preferences->C/C++->Environment,如下圖所示,新增兩個環境變數

將C_INCLUDE_PATH 設為 /usr/include 
將CPLUS_INCLUDE_PATH 設為 /usr/include/c++

如果在Cygwin的/usr/include/目錄下沒有c++這個目錄,可以從\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include\c++拷貝一個到目錄下,或者直接新增這個目錄都可以。

此步也可以解決程式碼中提示的顯示資訊”Unresolved inclusion:“問題,儘管不影響編譯,只是無法定位標頭檔案中的符號。

(2)在Windows裡面,加入環境變數CPLUS_INCLUDE_PATH 和C_INCLUDE_PATH,並都設定成,安裝的Cygwin的對應lib路徑:D:\cygwin\lib然後再新建C/C++專案的時候,就可以自動生產Includes檔案夾了。

2、用eclipse 建立編譯C++工程出現錯誤提示 “symbol could not be resolved”

問題原因:是debug下的source lookup path沒有對映正確。

解決辦法:

window -> preferences -> C/C++ -> debug -> source lookup path > Path Mapping 
\cygdirve\c     C:\

用cygwin下的c盤來替代當前的C盤 來查詢需要的庫檔案,如果你的Cygwin安裝在C盤,則對映C盤,如果安裝在D盤,則對映為\cygdirve\d     D:\,其他盤同理。

3、用eclipse 建立編譯C++Debug工程出現錯誤提示以下錯誤

依然是上面對映的問題,開啟Cygwin自帶的“Cygwin Terminal”,然後輸入以下命令“mount”如圖所示:

上面就是我們設定的對映,如果沒有你的Ecplise的Workspace所在的盤的位置的對映,請按照上面的說明進行新增,即可除錯成功。例如,我的Workspace在D:盤下,則我想除錯程式,必須對映到D盤的位置。

4、解決Eclipse的CDT編寫的c/c++程式的執行結果不能輸出到console的問題

(1)設定“Debug Configurations"裡的“Environment”選項,新增PATH,指定X:\cygwin\bin的路徑。

如圖所示

(2)如果build不能通過

(編譯正常通過後會出現類似下面的輸出) 
**** Build of configuration Debug for project Test **** 
make all  
make: Nothing to be done for `all'. 
**** Build Finished **** 
請按照上面步驟重新安裝。