编译Cocos2dx程序 (一)

1、安装AndroidStudio

2、安装JDK

3、安装NDK

4、编译Cocos2dx工程,到 build 打开工程,用的都是动态库。

    Cocos2dx自动生成的项目中,Additional Dependencies 里看不到引用的 Lib。

    在 Command Line 可以看到引用的库,如果使用了Lua,会看到有 libluacocos2d.lib 的引用。

5、现在安卓项目都用AndroidStudio,项目下的 c/c++ 文件会先编译为 so,然后被主工程动态加载进来。

    编译这些 c/c++ 文件会使用 NDK。

    请阅读 NDK 的文档,如果看不太懂也先从前往后过一遍。

 

6、项目中如果使用预编译的库,那需要使用 PREBUILT_STATIC_LIBRARY,这个在 NDK 的手册里有专门一页来介绍。

    需要给每个库文件都写一个 Android.mk 文件,然后把他们放在独立的目录中,然后依次调用。

    编译Cocos2dx程序 (一)_第1张图片

7、静态库子工程 Android.mk 例子

1 LOCAL_PATH := $(call my-dir)
2 
3 include $(CLEAR_VARS)
4 LOCAL_MODULE := pbc
5 LOCAL_SRC_FILES := libpbc.a
6 LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../../Classes/pbc/include
7 include $( PREBUILT_STATIC_LIBRARY)

8、外部工程 Android.mk 例子

 1 LOCAL_PATH := $(call my-dir)
 2 
 3 include $(CLEAR_VARS)
 4 
 5 LOCAL_CPPFLAGS := -std=c++11 -pthread -frtti
 6 
 7 LOCAL_MODULE := cpp_empty_test_shared
 8 
 9 LOCAL_MODULE_FILENAME := libcpp_empty_test
10 
11 LOCAL_SRC_FILES := main.cpp \
12                    ../../../Classes/AppDelegate.cpp \
13                    ../../../Classes/HelloWorldScene.cpp \
14                    ../../../Classes/net_game_dispatcher.cpp
15 
16 LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes \
17                     $(LOCAL_PATH)/../../../../../cocos \
18                     $(LOCAL_PATH)/../../../../../external/lua/lua \
19                     $(LOCAL_PATH)/../../../../../external/lua/tolua \
20                     D:/android-ndk-r10b/platforms/android-19/arch-arm/usr/include
21 
22 LOCAL_LDLIBS := -llog
23 
24 LOCAL_STATIC_LIBRARIES := cocos2d_lua_static
25 LOCAL_STATIC_LIBRARIES += pbc
26 LOCAL_STATIC_LIBRARIES += scnet
27 
28 include $(BUILD_SHARED_LIBRARY)
29 
30 $(call import-module,scripting/lua-bindings/proj.android)
31 $(call import-module,pbc)
32 $(call import-module,scnet)

9、可能会遇到下面类似的提示,不要惊慌,那是由于没有设置好被 call 引用的路径

    编译Cocos2dx程序 (一)_第2张图片

    创建一个类似下面的脚本,Win上使用;号隔开,Mac上可能使用:号

1 set NDK_MODULE_PATH=E:/cocos2d-x-3.11;E:/cocos2d-x-3.11/cocos;E:/cocos2d-x-3.11/external;E:/cocos2d-x-3.11/tests/cpp-empty-test/proj.android-studio/app/jni;D:/android-ndk-r10b/platforms/android-19/arch-arm/usr/include
2 ndk-build

 

转载于:https://www.cnblogs.com/tomren/p/5654314.html

你可能感兴趣的:(移动开发,lua,c/c++)