1. 程式人生 > >Eclipse LUNA +MinGW+CDT編譯C99專案

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];
    }


但我for(int i=0;i<index;i++)寫習慣了,不想改,於是各種搜尋,找了半天也沒找到,最後只好自己去配置編譯環境。

反正Eclipse的C/C++配置就那麼一點,一個一個去找,還真讓我找到了。

解決方案:選中專案->Properties->C/C++ Build->Settings->Tools Settings->GCC C Compiler->Dialect->Language standard,就可以選擇編譯模式了。