當前位置:首頁 » 安卓系統 » cocos2dxandroid編譯

cocos2dxandroid編譯

發布時間: 2022-06-24 12:11:27

❶ 如何用CCache加速Cocos2d-x Android版本的編譯

CCache是C/C++的編譯器緩存。當相同的編譯被再次編譯時,進行檢測並通過之前編譯的緩存進行編譯加速。所以我們可以通過這種方法給Cocos2d-x Android的編譯加速。使用這種方法,在i7 CPU的Macbook Pro Retina上編譯,我們的Cocos2d-x Android工程編譯時間可以從10分鍾減少到30秒!!

注意:以下操作僅對Mac OS X有效。

安裝
我們使用homebrew:

1

brew
install --HEAD ccache

或者通過源碼安裝:

1
2
3
4
5
6
7

git
clone https://github.com/jrosdahl/ccache.git
cd
ccache
./autogen.sh
./configure
make
make
install
cp
/usr/local/bin/ccache /usr/bin/

注意:默認的安裝路徑是 /usr/local/bin,我們需要拷貝ccache到/usr/bin/,不然ndk-build會找不到並報錯

如果終端報錯說找不到autoheader,這說明我們需要先安裝automake:

1

brew
install automake

但是,如果如果報錯是說找不到brew,我們就必須先安裝brew:

1

ruby
-e "$(curl
-fsSL
https://raw.github.com/Homebrew/homebrew/go/install)"

確保ccache的路徑可以被$PATH識別,運行命令:

1

ccache

如果你看到幫助信息,恭喜你,安裝成功了!

在android上配置編譯環境
我們必須先設置以下環境變數來使用ccache:

1
2
3
4

vim
~/.bash_profile
Add
following lines:
export
USE_CCACHE=1
export
NDK_CCACHE=/usr/local/bin/ccache

運行命令行:

1

ccache
-M 10G

這個命令將緩存大小設置為10G。當然,如果你的硬碟有足夠的空間,你也可以將此設置為50G。

然後,我們跳轉到NDK目錄,如果你忘了這個路徑,你可以使用以下命令來查看:

1

which
ndk-build

以下是我的輸出結果:

1

/developer/android/android-ndk-r9b/ndk-build

所以,我的NDK_ROOT是:

1

/developer/android/android-ndk-r9b

打開文件:$NDK_ROOT/build/core/default-build-commands.mk

找到以下章節並加入ccache,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13

ifneq
($(findstring ccc-analyzer,$(CC)),)
TARGET_CC
= $(CC)
else
TARGET_CC
= ccache $(TOOLCHAIN_PREFIX)gcc #Add ccache support
endif
TARGET_CFLAGS
=
TARGET_CONLYFLAGS
=
ifneq
($(findstring c++-analyzer,$(CXX)),)
TARGET_CXX
= $(CXX)
else
TARGET_CXX
= ccache $(TOOLCHAIN_PREFIX)g++ #Add ccache support
endif
TARGET_CXXFLAGS
= $(TARGET_CFLAGS) -fno-exceptions -fno-rtti

編譯cocos2d-x游戲
選擇cocos2d-x根目錄,運行:

1

python
build/android-build.py -p 10 cpp-tests

新建一個終端窗口,運行:

1

ccache
-s

這個命令會列印出ccache狀態,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

cache
directory /Users/heliclei/.ccache
primary
config /Users/heliclei/.ccache/ccache.conf
secondary
config (readonly) /usr/local/etc/ccache.conf
cache
hit (direct) 13588
cache
hit (preprocessed) 11145
cache
miss 696
called
for

link 1
called
for

preprocessing 14
preprocessor
error 1
can't
use precompiled header 129
no
input file 5
files
in cache 32222
cache
size 5.4 GB
max
cache size 30.0 GB

如果緩存的高速緩存命中(cache hit)和緩存大小(cache size)均為0,這就表示ccache沒有運行,我們必須從新檢查配置。

在Xcode中部署
配置Xcode(5.1)的ccache環境有點麻煩。我確實能調用ccache,但貌似沒有增加編譯速度。如果你有好的方法解決這個問題,請到github上為本篇教程提交pr!不過我們還是看看設置方法:

首先,我們添加2個自定義宏(user-defined macros)到cocos2d_libs的編譯選項中:

1
2

CC=$(SOURCE_ROOT)/../tools/xcode_ccache_wrapper
LDPLUSPLUS=$(DT_TOOLCHAIN_DIR)/usr/bin/clang++

然後,我們需要在$(COCOS2dX_ROOT)/tools/路徑下創建名為xcode_ccache_wrapper的腳本

1
2
3
4

#!/bin/bash
export
CCACHE_CPP2=yes
export
CCACHE_LOGFILE=~/Desktop/ccache.log
exec
/usr/local/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments
"[email protected]"

設置完成,我們就可以快樂的在Xcode中編譯了!

打開ccache.log可以查看cache工作狀態。

❷ cocos2dx在windows下開發怎麼編譯成apk

下面一段是網路的說明:
Cocos2d-x 是一個支持多平台的 2D 手機游戲引擎,使用 C++ 開發,基於OpenGL ES,基於Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhone 8.[1]Cocos2d-x是一個開源的移動2D游戲框架,MIT許可證下發布的。這是一個C++ Cocos2d-iPhone項目的版本。Cocos2d-X發展的重點是圍繞Cocos2d跨平台。Cocos2d-x提供的框架外,手機游戲,可以寫 在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x[2]項目可以很容易地建立和運行iOS,Android 的三星Bada,黑莓Blackberry操作系統和更多。Cocos2d-x還支持Windows、Mac和linux等桌面操作系統,因此,我們可以 編寫的源代碼很容易在桌面操作系統中編輯和調試。

總的來說,cocos2dx的android交叉編譯環境還是蠻麻煩的。下面內容就是我一步一步實現的過程。
第一部分 安裝
一、Cygwin安裝
這個安裝比較簡單,網上也有大把的例子,這里我只是簡述一下。
首先去官網www.cygwin.com下載安裝,安裝包分32位和64位兩種.視情況選擇了。因為只是編譯,這里選擇的是32位版本。
下載地址:http://cygwin.com/setup-x86.exe
然後默認安裝,在安裝源的時候,選擇
http://mirrors.sohu.com/cygwin 或 http://mirrors.163.com/cygwin ,哪個好用,就哪個。
安裝的時候,把開發包都選上就可以了。
我這里是把cygwin安裝在c:\cygwin目錄下面了。
註:這里默認的vi不是我們常用的vim,使用起來會很不習慣,你可以根據實際情況下載,在安裝的時候,選擇編輯器的vim,然後就可以用了。如果沒有vim,你用的時候在vi命令行輸入set nocp,就可以正常習慣使用了。
二、 adt-bundle安裝
現在adt-bundle都集成了下面的功能,這樣就不用再去配置eclipse插件了。
l Eclipse + ADT plugin
l Android SDK Tools
l Android Platform-tools
l The latest Android platform
l The latest Android system image for the emulator
下載地址:
Adt-bundle也同樣分32位和64位的,在這里照樣下載32位的版本
http://dl.google.com/android/adt/adt-bundle-windows-x86-20131030.zip。64位的地址我也加上http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20131030.zip
下載完成後,解壓就可以使用。我這里是解壓到e:\adt-bundle
裡面有eclipse,sdk兩個目錄和一個SDK Manager管理軟體。運行SDK Manager可以下載你需要的SDK版本。
注意:你下載的java也要對應的32位和64位的環境,否則eclipse將會啟動不了。牢騷一句,oracle把java和mysql並入後,真是開源的最大悲劇。你去下載它,就明白了。祝願oracle早點倒閉。
三、ndk安裝
下載地址:
32位下載地址
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86-legacy-toolchains.zip
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86.zip
64位下載地址
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86_64-legacy-toolchains.zip
http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86_64.zip
然後解壓就可以了,我這里解壓到
E:\android-ndk-r9b
四、cocos2dx安裝
我這里下載的版本是cocos2dx v2.2。同時還有一個免費的編輯器CocoStudio,它提供了UI和動畫,資源編輯功能。可以不用mac下面那個收費的軟體了。
今天突然http://www.cocos2d-x.org/怎麼都下載不了,沒辦法,只好到https://github.com/cocos2d/cocos2d-x/這里下載了。找到對應的2.2版本。
Cocos2dx下載地址:
https://codeload.github.com/cocos2d/cocos2d-x/zip/cocos2d-x-2.2
Cocostudio下載地址:
http://d001.download.appget.cn/CocoStudio/DownLoad/v1.0.0.1/CocoStudio_Full_V1.0.0.1.exe
然後cocostudio默認安裝就可以了,我這里把cocos2dx解壓到e:/cocos2dx
五、python安裝
因為,cocos2dx創建工程,需要python,所以這里還需要下載python,去他的官網http://www.python.org/下載就可以了
下載地址:
http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi 這個下載32位版本就可以了。然後默認安裝。我這里安裝到了C:\Python27
六、ant安裝
這個是一個將軟體編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用於Java環境中的軟體開發。這里在生成apk的時候,也用到了。所以也要下載安裝。
http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.2-bin.zip
解壓到c:\ant就可以了
到這里,所以需要的軟體,都已經下載,並安裝了。
第二部分:配置
第一步:新建環境變數
點windows的開始菜單-〉計算機 右鍵菜單選擇屬性,彈出屬性對話框。然後選擇高級系統設置,如下圖

然後選擇環境變數
增加
ANT_HOME=C:\ant
PYTHON_HOME=C:\Python27
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_16
NDK_ROOT=E:\android-ndk-r9b
ANDROID_SDK=E:\adt-bundle\sdk
然後編輯環境變數path,追加 %JAVA_HOME%\bin;%ANT_HOME%\bin;%PYTHON_HOME%;%NDK_ROOT%;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;
這樣,就可以在CMD窗口執行相關的命令了。
第三部分 cocos2dx的工程准備
第一步:增加android_update.bat
在ant生成apk的時候,會需要知道,你編譯的目標是什麼版本和src.dir等信息。創建這個工程,就是為了自動更新它。批處理的內容是
android update project -p . -t android-10
該文件建好後,命名為android_update.bat,放在E:\cocos2dx\template\multi-platform-cpp\proj.android
注意,請先確認你的ANDROID_SDK是否安裝了對就的版本,android-10是對應的是android2.3,其他的版本請用對應的數字。執行e:\adt-bundle\SDK Manager.exe,如下圖所示:

這里的數字是19
那麼批處理的內容改為
android update project -p . -t android-19
第二步:修改build_native.sh
該文件在E:\cocos2dx\template\multi-platform-cpp\proj.android目錄中,因為在執行build_native.sh的時候,會出現的許可權的問題,所以在這個腳本中,增加了許可權設置,來解決這個問題。
在第67行後面,也就是復制資源的後面增加下面一行
chmod 666 -R "$APP_ANDROID_ROOT"/assets就可以了。如下圖所示

第三步,創建工程復制批處理
在cocos2dx的2.2中,已經少了一些批處理來創建工程,現在全部改用python來創建工程。
現在到E:\cocos2dx\tools\project-creator下,創建一個批處理demo.bat,內容如下
python create_project.py -project %~n0% -package com.android.zdhsoft -language cpp
x ..\..\cocos2dx\platform\android\java\src\* ..\..\projects\%~n0%\proj.android\src /E
上面批處理的
第一行的意思是,建一個工程為%~n0%的工程,包名是com.android.zdhsoft,使用的語言是cpp。%~n0%在批處理表示的是 批處理的文件名,在demo.bat中,%~n0%的值是demo。使用該批處理的好處是,如果建議某一個工程,只有把批處理復制一個,然後重新命名就可 以了。如命名為sample.bat,執行後,就可以行到一個sample的cocos2dx工程。
創建的工程在E:\cocos2dx\projects目錄中。
第二行的意思,復制編譯andiroid工程需要的java文件。否則編譯的時候,會提示找不到對應的類。

❸ cocos2dx 2.2.1工程編譯android版本,有release和debug之分嗎

您好,很高興能幫助您
1. 下載cocos2dx 2.2.1
去cocos2dx官網下載就好,最好是2.2.1版本。3.0版本變化比較大,也沒測試過。

3. 創建工程
使用cocos2dx目錄下的tools/project-creator/create_project.py創建一個工程。

4. 編譯android版本
網上很多文章說,編譯cocos2dx的Android版本時需要安裝cygwin之類的,其實這對於目前的ndk版本來說是不必要的,因為高版本的ndk都集成了cygwin的一些功能。我這里使用的是ndk r9d。下面來說一下操作步驟。
我編譯的習慣是直接在jni目錄下預先ndk-build命令,因為在Windows下使用.sh結尾的文件太怪異了。首先來看一下build_native.sh乾的工作:

這是build_native.sh中實際工作的部分。可以看到它使用NDK_ROOT下的ndk-build來編譯,還導入了NDK_MODULE_PATH, 這個NDK_MODULE_PATH是為Android.mk中的import-mole提供路徑選擇。
現在來導入NDK_MODEL_APTH, 在Android.mk的import-mole之前加上cocos2dx中的幾個路徑:

$(call import-add-path, G:/cocos2dx)
$(call import-add-path, G:/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)
運行ndk-build, 編譯。

編譯時可能出現這樣的錯誤:error: GLES2/gl2.h: No such file or directory,這是因為低版本的Android版本不支持opengl es2.0,在Application.mk中加上:

APP_PLATFORM := android-17

5. 生成apk包
在eclipse下打開創建的工程,導入相關的包後,在AndroidMenifest.xml中加入:

android:debuggable="true"

表明這是一個可以調試的包。運行,結果出現:

這是因為該工程默認使用build_native.sh編譯:

因為build_native.sh現在已經沒用了,所以把它改成:

這個意思是,直接使用NDK_ROOT環境變數下的ndk-build.cmd來編譯工程,編譯成debug版本,編譯成armeabi和armeabi-v7a兩種指令格式的庫,執行這個命令的目錄是工程目錄下的jni文件夾。debug版本和armeabi-v7b主要是為了後面使用visualGDB調試做准備。
再編譯,就可以生成apk包了。

VisualGDB調試
1. 下載並安裝VisualGDB, 安裝完成後,在Visual Studio的目錄中可以看到Android選項:

2. 配置VisualGDB, 在Android -> Setup SDK/NDK location

主要配置JDK,SDK,NDK,ANT路徑
3. 設置要調試的apk包。Android -> Debug a Custom APK file

4 設置完成後,在代碼中設置斷點,點擊Debug, 開始調試

5. 等apk安裝完成後,程序會運行到斷點出,就可以開始用Visual Studio調試了

你的採納是我前進的動力,
記得好評和採納,答題不易,互相幫助,

❹ cocos2dx怎麼編譯到android

1、配置jar,ant環境變數,同時配置sdk路徑,環境命於下面build.xml添加的一致為 ANDROID_HOME
2、清楚project.properties中的 android.library.reference 對cocos2d項目的引用,在3中改為引用對應的包。 清楚local.properties 中對sdk路徑的引用,並在build.xml中改為使用環境變數。
3、復制 E:\test\cocos2d\cocos\platform\android\java\bin\ 下生成的 classes.jar到libs目錄下。
這樣在執行cmd命令下執行ant release即可進行編譯,為了方便使用,可以添加一個bat文件,內容寫 ant release即可。
最後,將下列的文件上傳svn,策劃僅需獲得這些文件就可以在雙擊release.bat後進行編譯了。

❺ cocos2dx 3.16怎麼編譯

先給自己科普一下, android sdk 是給java開發者用的, 咱C++開發者用的是android ndk, 所以就是使用ndk來編譯cocos2dx程序了

使用命令行創建一個項目, 我這里創建的是一個lua項目:cocos new lua_proj2 -p com.company_name.program_name -l lua -d d:\xxx\xxx
此時創建了一個DEMO程序, 此時就可以使用cocos命令生成一個apk包, 進入到目錄lua_proj2\frameworks\runtime-src下面, 在此目錄下面執行命令cocos compile -p android 就會生成一個apk包, 把這個拖到genymotion上面, 就安裝跑起來了.
上面說的是不使用eclipse的方式來生成一個apk包, 下面記錄一下在eclipse中載入lua_proj2這個項目, 並生成apk包的過程. 為什麼一定要將cocos2dx項目導入到eclipse中來生成apk包呢, 因為在eclipse中可以連接AVD來調試android程序, 再者, eclipse可以運行在linux環境下面, 後面我打算在linux進行開發, 所以這一步是一定要跨出去的

打開eclipse, 載入lua_proj2項目, 在此注意一下, 不需要載入libcocos2dx這個項目, 只要載入lua_proj2這個自己新建一項目即可
在eclipse中右擊lua_proj2 -> Properties. 出現Properties for lua_proj2框框

創建一個新的builder

第一個紅框是builder名稱, 隨便填寫, 第二個紅框框是NDK生成工具, 即, 使用此工具來編譯C++項目, 第三個紅框框是工作目錄, 此處我使用lua_proj2項目目錄作為工作目錄, 切換到Environment選項卡, 新建一個在此生成器中使用的環境變數NDK_MODULE_PATH, 值是......\lua_proj2\frameworks\cocos2d-x\cocos;......\lua_proj2\frameworks\cocos2d-x;......\lua_proj2\frameworks\cocos2d-x\external, 前面的.......是絕對目錄的省略, 這里要輸入絕對路徑名稱, 在此我就不寫絕對路徑了.

一路OK下去, 到下面這個畫面

這個就新建立的builder, Project->Build Project

出現大量的error: 'override' does not name a type錯誤, 這是由於NDK的版本太低了, override是C++11中才有的關鍵字, 而到NDKr10才支持C++11, 所以要升級NDK. 到官網去下載吧
不大, 400多M的樣子, 更新完成之後, 看一下ndk\toolchains目錄下面的編譯器, 我的目錄是下面這樣子的

我很想使用clang來編譯, 但是現階段我還不會配置, 就用GCC吧, x86-4.6 & x86-4.8兩個版本的GCC, 4.8的支持C++11
在Application.mk中添加一句NDK_TOOLCHAIN_VERSION = 4.8 就是指定使用GCC4.8來編譯cocos2dx項目, 跑起來了, 下面是eclipse跑起來的console輸出

跟命令行下執行cocos compile -p android 跑出來的是一樣的, 都是在編譯程序. 下面進入到在eclipse下面調試程序

❻ 如何用android studio開發cocos2dx

第一步,要進行下載安裝啦,可以訪問http://www.cocos2d-x.org/download網站下載
現在最新的版本是v3.13.1
Cocos2d-x 是我們需要的資源包;
cocos Creator 這個是cocos開發工具,可以跨平台開發!
第二步:具體的安裝使用和介紹可以參考中文版文檔http://www.cocos.com/docs/native/進行查看

在Android Studio上創建第一個關於cocos2d-x的「hello world」項目:

1. 步驟一

:在命令行里敲出命令:

cocos new testApp -p com.coco2dx.org -l cpp -d ./
1
1
參數說明:

testApp為項目名稱
-p後面接包名
-l後面接開發語言類型,有cpp, lua, js三種類型
-d後面接項目存放的目錄
如果你沒有配置環境變數,可以這么做:
進入到目錄cocos2d-x-3.2alpha0/tools/cocos2d-console/bin/cocos.py

打開終端運行cocos.py腳本創建文件

python cocos.py new testApp -p com.coco2dx.org -l cpp -d ~/Desktop
1
1
2. 步驟二

打開testApp目錄,會有以下文件和文件夾:這里寫圖片描述
目錄proj.android是eclipse項目工程,proj.android-studio是android studio的項目,這兩個是android的項目;
cocos2d是類庫,
Classes目錄,是C++源碼目錄,如果要更改屏幕元素,就在這裡面修改!所以如果使用,就得需要C++基礎了!!!
使用android stuido,打開工程proj.android-studio

3.步驟三
導入之後,並進行gradle sync成功後,會看到如下結構:
這里寫圖片描述
當然,libs和obj目錄目前應該還沒有,怎麼才有呢?
在命令行里,打開到jni目錄:

...\testApp\proj.android-studio\app\jni>ndk-build
1
2
1
2
執行ndk-build命令,開始編譯so文件,這個時間比較長,耐心等待,成功後,就可以運行app了!

界面如下:

這里寫圖片描述

恭喜您,關於cocos2d-x的hello world工程運行成功!!!

注意:本部分游戲的核心部分是採用C++編寫的,Java部分只負責展示這個界面!如果深入編寫,需要學習C++了!!

❼ 如何用cocos2dx開發android游戲

cocos2d-x在win32平台上開發出來的代碼還需要交叉編譯後才能生成android可以使用的包,具體操作見這個文檔

另:使用cocos2d-x引擎的優勢在於便於移植性。其開發出的C++代碼只要在各平台上只要稍加改動就可以使用。而單使用ECLIPSE或Xcode環境使用的語言分別是java和Object-c,如果直接讓它們相互轉換難度肯定要大的多。

❽ android環境下cocos2dx-3.13.1,新建項目後proj.android下沒有build_native.py腳本文件,如何編譯項目

好像最近幾個版本不能使用build_native.py來build c++內容了,你這個項目都沒這個文件應該是完全取消了這個項目的生成方式。不如你試試命令行:
cocos compile -p android
如果不行,最好看一下官方怎麼說的。

❾ cocos2dx3.2編譯android的.so報錯

NDK_MODULE_PATH沒定義

❿ Mac上編譯cocos2dx例子到android手機上失敗

這個是你cocos2d-x中使用srand()或者rand()的時候沒有包含對應的庫。我用的是VS,只要#include<math>就可以了,mac就不知道了,但應該是一樣的原因

熱點內容
淘寶補貨腳本 發布:2022-06-29 02:02:14 瀏覽:82
常用的php數組函數 發布:2022-06-29 02:01:04 瀏覽:508
如何配置小度音箱當監控 發布:2022-06-29 02:00:50 瀏覽:409
centos7python 發布:2022-06-29 02:00:49 瀏覽:510
批處理for子文件夾 發布:2022-06-29 02:00:45 瀏覽:407
以前的java游戲 發布:2022-06-29 01:59:34 瀏覽:364
壓縮性越低 發布:2022-06-29 01:55:19 瀏覽:325
微信怎麼上傳到電腦上 發布:2022-06-29 01:55:18 瀏覽:81
加密戲曲卡提取工具 發布:2022-06-29 01:54:17 瀏覽:322
煙台銀行密碼是多少 發布:2022-06-29 01:54:07 瀏覽:542