使用eclipse調試cocos2d-x C++ 代碼(編寫+真機調試,放棄VS)

來源:互聯網
上載者:User

標籤:

http://blog.csdn.net/tt5267621/article/details/8940768

前提條件:

先看此文:http://blog.csdn.net/tt5267621/article/details/8941084(首先ecplise已經可以編譯cocos2d-x再看此文)

  • 你已經下載coccos2d-x和NDK,並且會使用build_native.sh和eclipse編譯cocos2d-x項目
安裝NDK Plugin

英文好的同學可以直接查看官方說明Using the NDK plugin,這裡我簡單翻譯一下

  1. 開啟eclipse,在菜單裡選擇Help->Install New Software…
  2. 彈出的視窗裡第一個框”Work with:“後面輸入https://dl-ssl.google.com/android/eclipse/
  3. 稍等一會,下面會出來”Developer Tools”和”NDK Plugins”,全部選中,Next,同意協議,等安裝完成後,重啟eclipse
  4. eclipse重啟後,到Eclipse->Preferences->Android->NDK,在這裡設定你的NDK目錄,比如我的,我設定到/android/android-ndk-r8e
  5. 安裝完成
匯入cocos2d-x目錄下的樣本遊戲

這裡我以cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame這個內建的小遊戲為例子來說明一下.

假設你的eclipse是乾淨的,也就是左邊的Package Explorer欄是空空的

  1. 匯入libcocos2d-x到eclipse,右擊Package Explorer空白地區,Import->Existing Android Code Into Workspace,然後在下一個視窗的Root Directory那裡定位到cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/android/java這個目錄,選中libcocos2dx,匯入
  2. 按照上面的方法匯入cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android
  3. 現在eclipse裡已經有了兩個項目:libcocos2dx,SimpleGame
設定使用ndk-build來編譯

因為我們不使用build-native.sh來編譯,所以要先把資源檔得到在android項目的assets下,具體就是把cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/Resources下面的所有檔案複製到cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/assets下面去

準備工作完畢

  1. 在eclipse的Package Explorer裡右擊SimpleGame項目,選”Properties”,開啟項目屬性框
  2. 按下面設定Tool Chain Editor 
  3. 再設定ndk-build的命令,為 ndk-build NDK_DEBUG=1,確定,關閉對話方塊 
  4. 這個時候,你選擇Project->Build All,會出現錯誤,意思是NDK_MODULE_PATH設定不對 
  5. 這裡我們不設定NDK_MODULE_PATH,因為設定了它會讓我們無法調試C++代碼,解決上面問題的辦法是:把編譯過程中需要的庫拷貝到系統預設的NDK_MODULE_PATH裡,跟我來做
  6. 複製cocos2d-2.1rc0-x-2.1.3目錄下的cocos2dx,CocosDenshion,extensions,external這4個目錄到你的NDK的sources目錄下,以我的電腦為例,就是/android/android-ndk-r8e/sources
  7. 複製cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/third_party/android/prebuilt目錄的所有到NDK的sources目錄下
  8. 這樣我們複製到NDK的sources目錄下的目錄一共有cocos2dx,CocosDenshion,extensions,external, libcurl,libjpeg,libpng,libtiff,libwebp這幾個
  9. 回到eclipse,再次Project->Build All,應該會編譯成功
修改專案檔結構,以使cdt可以識別我們的C++檔案

為了可以給C++下斷點,我們必須修改一下當前的專案檔結構

  1. 移動cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/Classes目錄到cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面
  2. 修改cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面的Android.mk,把原來的

Android.mk中:

LOCAL_SRC_FILES := hellocpp/main.cpp             ../../Classes/AppDelegate.cpp            ../../Classes/HelloWorldScene.cpp             ../../Classes/GameOverScene.cpp                       LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes 

修改為

LOCAL_SRC_FILES := hellocpp/main.cpp                Classes/AppDelegate.cpp                Classes/HelloWorldScene.cpp                 Classes/GameOverScene.cppLOCAL_C_INCLUDES := $(LOCAL_PATH)/Classes    

也就是使檔案指向正確的位置

Project->Build ALL 編譯項目,應該可以成功編譯

調試
  1. 我們給Classes目錄下的HelloWorldScene.cpp檔案裡的ccTouchesEnd方法下一個斷點,這樣遊戲運行後,點擊螢幕應該可以觸發我們的斷點 
  2. 把手機串連到電腦上,右擊SimpleGame, 選 Debug As->Android Native Application
  3. 如果需要選擇手機,選你想調試的
  4. 遊戲運行起來後,觸控螢幕幕,可以看到

eclipse自動切換到了Debug介面,而且成功的斷點下來了,並且變數可以在右邊視窗查看 Debug介面上的按鈕就不再多說了,就是繼續執行,逐步執行什麼的幾個,摸索一下便知

Enjoy!

[原創文章,轉載請註明]




PS: 上述操作中我們複製了cocos2dx的好多檔案到NDK的目錄下面去,顯的有點繁瑣,這樣做的目錄是為了避開去設定NDK_MODULE_PATH,如果一旦設定了NDK_MODULE_PATH,就會使的調試不可行,可能有更好的方法,如果你知道,或者有什麼問題都可以直接在文章下面留言

使用eclipse調試cocos2d-x C++ 代碼(編寫+真機調試,放棄VS)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.