Eclipse LUNA +MinGW+CDT編譯C99專案
最近專案加密演算法使用了JNI實現,以前是在Xcode上寫C程式碼測試,閒著無事在Win8.1上部署了一套C/C++開發環境,記錄下部署過程。
1、Eclipse安裝
Google剛推出正式版的Android Studio,試用了一下,直接把MAC電腦卡死了,果斷棄之,官網上又沒有整合ADT的Eclipse,於是找了個最新版的LUNA,
下載地址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr1a
下好之後,解壓即可,裡面已經集成了CDT,可以直接用來建立C/C++專案。
2、MinGW安裝
建立完C++專案後,會發現什麼也幹不了,那是因為電腦上沒有C/C++庫檔案和編譯工具,於是又去安裝MinGW。
下載地址:http://sourceforge.net/projects/mingw/files/
下載安裝完後只是完成了MinGW的一小步,找到安裝路徑bin目錄的mingw-get.exe,這是一個下載載入程式,和Android的SDK Manager.exe類似。
開啟後選中要下載的檔案,右鍵Mark for Installation,標記安裝。吐槽一下,我沒找到批量選中,只能一個一個去標記,所有的加起來估計上百個。全選中後,
Installation->Applay Changes,開始下載,貌似需要翻牆,我把VPN一關,就會失敗,所以建議大家不要選擇這種線上安裝的方式,我整整弄了四個多小時才下完,離線安裝百度一大堆,我這裡就不介紹了。
3、編譯C99專案
安裝完MinGW,配置好它的環境變數,當我們重新建立專案時,發現多了個MinGW,這時建立專案,引入標頭檔案,列印一句hello world,編譯什麼的,一切都Ok。
但當我將加密程式碼拷貝過來時,編譯報錯:
..\SimpleEncrypt.c:40:5: error: 'for' loop initial declarations are only allowed in C99 mode
for (int i=0; i<index; i++) {
很明顯,for迴圈不能用for(int i=0;i<index;i++),可以將它改為
int i = 0;
for ( i=0; i<index; i++) {
result[k++] = str[i];
}
反正Eclipse的C/C++配置就那麼一點,一個一個去找,還真讓我找到了。
解決方案:選中專案->Properties->C/C++ Build->Settings->Tools Settings->GCC C Compiler->Dialect->Language standard,就可以選擇編譯模式了。