Ubuntu14.04+eclipse下cocos2d-x3.0正式版環境的搭建

來源:互聯網
上載者:User

標籤:灰色   報錯   rect   ber   run   cti   get   推斷   setting   

環境:

ubuntu14.04

adt-bundle-linux-x86_64

android-ndk-r9d-linux-x86_64

cocos2d-x-3.0正式版

apache-ant 1.9.3

python 2.7(ubuntu內建)

加入環境變數

export ANDROID_SDK_ROOT=/home/yangming/adt-bundle-linux/sdk
export PATH=${PATH}:/$ANDROID_SDK_ROOT/tools/
export PATH=${PATH}:/$ANDROID_SDK_ROOT/platform-tools/

export NDK_ROOT=/home/yangming/adt-bundle-linux/android-ndk-r9d
export PATH=${PATH}:/$NDK_ROOT


export ANT_ROOT=/opt/apache-ant-1.9.3
export PATH=${PATH}:/$ANT_ROOT/bin.

終端下執行build目錄裡的install-deps-linux.sh安裝gcc等編譯須要的環境,這裡有硬性要求,gcc至少4.8,opengl至少1.5。低於標準可能編譯只是去。編譯過去也執行不了。


終端下執行setup.py,cocos new建立項目。這個各個平台應該都一樣的。

得到所看到的檔案夾


cd test/proj.linux/
進入linuxproject檔案夾,運行
cmake ..
產生makefile檔案。


開啟eclipse,匯入proj.linuxproject,選擇C/C++,選擇Existing Code as Makefile Project,選linux gcc

此時這個項目已經能夠直接編譯執行了,可是原始碼在檔案夾外看不到。我們再來引入原始碼。

按右鍵project->Properties->C/C++ General->Paths and Symbols->Source Location->Link Folder,依次匯入project檔案夾裡的Classes,Resources,cocos2d。cocos2d因為linuxproject裡有同名檔案夾。能夠改個名

如今project應該是這個樣子。開啟一個檔案,發現有非常多錯誤,

看一下錯誤的原因,以這個Director為例,我們開啟他的標頭檔,發現CC_DLL這個宏沒有被識別


這個宏是在哪裡定義呢。在各個平台各自的CCPlatformDefine.h裡。

能夠看到,因為

#if CC_TARGET_PLATFORM == CC_PLATFORM_LINUX

沒有成立,導致這個檔案的內容全都無效。我們能夠找一下CC_TARGET_PLATFORM。他在/test.linux/cocos2dsrc/cocos/base/CCPlatformConfig.h。這檔案中列出各個平台的編號。CC_TARGET_PLATFORM先被設定為0,再在以下推斷後重設。我們看到linux這行是灰色的。就是#if defined(LINUX)沒有成立。我們僅僅須要在Paths and Symbols裡加入LINUX參數和CC_DLL。LINUX值為1,CC_DLL值為空白。





必需要把Managed Build Setting 置於 GCC Built-in Compiler Settings之上,在Providers裡先取消GCC Built-in Compiler Settings,點Apply應用,再選中GCC Built-in Compiler Settings,再點Apply,回到Entries裡。Managed Build Setting就跑到 GCC Built-in Compiler Settings上面了

好。如今AppDelegate.cpp已經不報錯了。大部分檔案都正常了,但另一小部分還會報錯。比方HelloWorldScene.cpp

MenuItemImage這個類報錯。我們找到MenuItemImage.h。發現function這行報錯,std::function是c++11特性。我們須要讓cdt識別c++11特性。

找到functional檔案,這裡的問題和上面的平台式識別問題類似,#if __cplusplus >= 201103L這個推斷沒有成立,__cplusplus這個值預設值是199711L,我們須要在Paths and Symbols裡加入__cplusplus=201103L,同一時候加入-std=c++11,

這裡能夠點Export Settings匯出設定到xml,新project匯入就能夠


好,如今整個project都不報錯了,代碼提示也都能夠正常使用。我們點小鎚子build。開始編譯了。事實上這個project產生完makefile檔案後就能夠正常編譯,上面的報錯僅僅是eclipse cdt的設定問題,並非真正的錯誤。

編譯成功後,run as Local C/C++ Application,選MyGame,

成功。

自建類須要在CMakeLists.txt裡加入,又一次執行cmake,產生makefile才幹夠編譯

set(GAME_SRC  proj.linux/main.cpp  Classes/AppDelegate.cpp  Classes/HelloWorldScene.cpp)


另一些莫名其妙的報錯,如Return has value, in function returning void, must implement the inherited pure virtual method。Invalid arguments ‘ Candidates are: ,Member declaration not found之類的,請更新CDT到最新版,我更新之後這些報錯都消失了

Ubuntu14.04+eclipse下cocos2d-x3.0正式版環境的搭建

聯繫我們

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