天天看點

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

打開eclipse,在菜單裡選擇help->install new software…

彈出的視窗裡第一個框”work with:“後面輸入<code>https://dl-ssl.google.com/android/eclipse/</code>

稍等一會,下面會出來”developer tools”和”ndk plugins”,全部選中,next,同意協定,等安裝完成後,重新開機eclipse

eclipse重新開機後,到eclipse-&gt;preferences-&gt;android-&gt;ndk,在這裡設定你的ndk目錄,比如我的,我設定到<code>/android/android-ndk-r8e</code>

安裝完成

這裡我以<code>cocos2d-2.1rc0-x-2.1.3/samples/cpp/simplegame</code>這個自帶的小遊戲為例子來說明一下.

假設你的eclipse是幹淨的,也就是左邊的package explorer欄是空空的

導入libcocos2d-x到eclipse,右擊package explorer空白區域,import-&gt;existing android code into workspace,然後在下一個視窗的root directory那裡定位到<code>cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/android/java</code>這個目錄,選中libcocos2dx,導入

按照上面的方法導入<code>cocos2d-2.1rc0-x-2.1.3/samples/cpp/simplegame/proj.android</code>

現在eclipse裡已經有了兩個項目:libcocos2dx,simplegame

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

準備工作完畢

在eclipse的package explorer裡右擊simplegame項目,選”properties”,打開項目屬性框

按下面設定tool chain editor 

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

再設定ndk-build的指令,為 <code>ndk-build ndk_debug=1</code>,确定,關閉對話框 

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

這個時候,你選擇project-&gt;build all,會出現錯誤,意思是ndk_module_path設定不對 

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

這裡我們不設定ndk_module_path,因為設定了它會讓我們無法調試c++代碼,解決上面問題的辦法是:把編譯過程中需要的庫拷貝到系統預設的ndk_module_path裡,跟我來做

複制cocos2d-2.1rc0-x-2.1.3目錄下的<code>cocos2dx,cocosdenshion,extensions,external</code>這4個目錄到你的ndk的sources目錄下,以我的電腦為例,就是/android/android-ndk-r8e/sources

複制cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/third_party/android/prebuilt目錄的所有到ndk的sources目錄下

這樣我們複制到ndk的sources目錄下的目錄一共有<code>cocos2dx,cocosdenshion,extensions,external, libcurl,libjpeg,libpng,libtiff,libwebp</code>這幾個

回到eclipse,再次project-&gt;build all,應該會編譯成功

為了可以給c++下斷點,我們必須修改一下目前的項目檔案結構

移動cocos2d-2.1rc0-x-2.1.3/samples/cpp/simplegame/classes目錄到cocos2d-2.1rc0-x-2.1.3/samples/cpp/simplegame/proj.android/jni下面

修改cocos2d-2.1rc0-x-2.1.3/samples/cpp/simplegame/proj.android/jni下面的android.mk,把原來的

android.mk中:

修改為

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

project-&gt;build all 編譯項目,應該可以成功編譯

我們給classes目錄下的helloworldscene.cpp檔案裡的cctouchesend方法下一個斷點,這樣遊戲運作後,點選螢幕應該可以觸發我們的斷點 

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

把手機連接配接到電腦上,右擊simplegame, 選 debug as-&gt;android native application

如果需要選擇手機,選你想調試的

遊戲運作起來後,觸摸螢幕,可以看到

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

eclipse自動切換到了debug界面,而且成功的斷點下來了,并且變量可以在右邊視窗檢視 debug界面上的按鈕就不再多說了,就是繼續執行,單步執行什麼的幾個,摸索一下便知

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