借助Ecplise的強大功能,我們可以通過給Ecplise增加CDT插件來開發(fā)C/C++程序,下面是我配置CDT插件的總結(jié)過程,主要為了方便以后練習一些Demo程序時使用。編譯環(huán)境采用的是Cygwin。使用Ecplise4.2 + CDT8.1.2 +Cygwin2.774。建議先閱讀第6條的注意事項。
強烈介意:先安裝配置cygwin再安裝cdt插件
一、具體安裝步驟
為了保證安裝順利,請按以下步驟來進行。
1、安裝Cygwin
下載地址:http://cygwin.com/setup.exe 官網(wǎng):http://cygwin.com/
下載好后,點擊setup.exe進行安裝,出現(xiàn)如下圖所示界面
點擊“NEXT”后我們看到如下界面:
我們看到有三種安裝模式:
Install from Internet,這種模式直接從Internet安裝,適合網(wǎng)速較快的情況;
Download Without Installing,這種模式只從網(wǎng)上下載Cygwin的組件包,但不安裝;
Install from Local Directory,這種模式與上面第二種模式對應,當你的Cygwin組件包已經(jīng)下載到本地,則可以使用此模式從本地安裝Cygwin。
從上述三種模式中選擇適合你的安裝模式,這里我們選擇第一種安裝模式,直接從網(wǎng)上安裝,當然在下載的同時,Cygwin組件也保存到了本地,以便以后能夠再次安裝。選中后,點擊“下一步”。
這一步選擇Cygwin的安裝目錄,以及一些參數(shù)的設置。默認的安裝位置是C:\cygwin\,你也可以選擇自己的安裝目錄,然后選擇“下一步”,
這一步我們可以選擇安裝過程中從網(wǎng)上下載的Cygwin組件包的保存位置,選擇完以后,點擊“下一步”,
這一步選擇連接的方式,選擇你的連接方式,然后點擊下一步,會出現(xiàn)選擇下載站點的對話框,如下圖所示,
此步選擇第一個163提供的鏡像網(wǎng)站就可以,國內(nèi)下載速度挺快,如果有其他鏡像,可以輸入URL后,點擊“Add”進行添加,然后再在列表中選中。選擇完成后,點擊“下一步”,進過下載幾個文件后顯示如下界面
下面就在這個界面中下載我們需要編譯C/C++代碼的Packages,我們只需要下載“Devel”分支下幾個包就可以了,
gcc,
gcc-core,
gcc-g++,
gcc-mingw-core,
gcc-mingw-g++,
make ,
gdb,
binutils。
在上圖的search框中輸入gcc,程序會自動進行搜索,如下圖,通過選擇“Devel”分支下的包,找到安裝我們需要的包,然后點擊Skip來選擇最新的安裝包
這是已經(jīng)成功安裝最新版本包后的圖示,大家單擊“Skip”來選擇最新版本的安裝。
同理,輸入“make”后,選擇“Devel”分支下的包,下載如圖所示的包:
輸入“gdb”后,選擇“Devel”分支下的包,下載如圖所示的包:
輸入“binutils”后,選擇“Devel”分支下的包,下載如圖所示的包:
選完以后,我們選擇下一步,進入安裝過程,如下圖所示,
安裝的時間依據(jù)你選擇的組件以及網(wǎng)絡情況而定。安裝完成后,安裝程序會提示是否在桌面上創(chuàng)建Cygwin圖標等,點擊完成退出安裝程序。
2、配置Windows的環(huán)境變量
熟悉Java開發(fā)環(huán)境的都應該知道怎么找到環(huán)境變量,實在不知道的去百度下吧。
將cygwin\bin目錄加入到環(huán)境變量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++開發(fā)環(huán)境
(1)設置Ecplise與Cygwin的路徑映射
按以下步驟打開Ecplise:
Window -> Preferences->C/C++->Debug-> Common Source Lookup Path -> add -> new "Path Mapping".
映射方法,如下圖:
eclipse中調(diào)試時,由于GDB使用的unix格式的路徑,而eclipse使用的是windows路徑,導致找不到匹配的代碼, 把linux的路徑映射windows的路徑:比如 /cygwin/c 映射成 C:\ 。
(2)配置C/C++的"Makefile Project",選擇“PE Windows Parser", 和”Cygwin PE Parser" 兩項。
5、在Ecplise中創(chuàng)建工程編寫C/C++代碼
(1)創(chuàng)建C/C++工程
點擊”Next“,顯示如下圖:
點擊”Next“,顯示如下圖:
點擊”Finish“完成創(chuàng)建。
當編寫好代碼后,可以對你的工程進行編譯,點擊“Project”選項下的"Builder Project"項目即可。
編譯后的工程,如下圖所示:
此時是成功編譯后“Consloe”控制臺的顯示畫面。
點擊上面選中的,然后點擊鼠標右鍵,選擇“Run”,即可運行程序。此時控制臺即可打印出文字了。
到此我們就完成了Ecplise + CDT + Cygwin開發(fā)環(huán)境的配置,以后你就可以享用其方便的功能了。
6、常見問題
1、Eclipse下的CDT創(chuàng)建C++項目時候,不能自動生成includes文件夾
有兩種解決方法:
(1)打開Window -> Preferences->C/C++->Environment,如下圖所示,添加兩個環(huán)境變量
將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里面,加入環(huán)境變量CPLUS_INCLUDE_PATH 和C_INCLUDE_PATH,并都設置成,安裝的Cygwin的對應lib路徑:D:\cygwin\lib然后再新建C/C++項目的時候,就可以自動生產(chǎn)Includes文件夾了。
2、用eclipse 建立編譯C++工程出現(xiàn)錯誤提示 “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工程出現(xiàn)錯誤提示以下錯誤
依然是上面映射的問題,打開Cygwin自帶的“Cygwin Terminal”,然后輸入以下命令“mount”如圖所示:
上面就是我們設置的映射,如果沒有你的Ecplise的Workspace所在的盤的位置的映射,請按照上面的說明進行添加,即可調(diào)試成功。例如,我的Workspace在D:盤下,則我想調(diào)試程序,必須映射到D盤的位置。
4、解決Eclipse的CDT編寫的c/c++程序的運行結(jié)果不能輸出到console的問題
(1)設置“Debug Configurations"里的“Environment”選項,添加PATH,指定X:\cygwin\bin的路徑。
如圖所示
(2)如果build不能通過
(編譯正常通過后會出現(xiàn)類似下面的輸出)
**** Build of configuration Debug for project Test ****
make all
make: Nothing to be done for `all'.
**** Build Finished ****
請按照上面步驟重新安裝。