• 转载cocos3.17cmake打包


    <div class="show-content-free">
            <p>最近用到了Cocos2dx,3.17,发现网上的指南都几年前的,非常陈旧,<br>
    

    android.mk用起来又不方便,还是喜欢CMake。
    先说一下具体环境,使用的是,Windows10 + AndroidStudio3.2.1 + CMake

    去官网下载cocos2dx3.17,https://www.cocos.com/download

    1、创建新项目

    cocos2dx3.x使用python2.7,命令行方式创建新项目,(我用的Anaconda随意切换python2.7/3.6)
    命令行进入 oolscocos2d-consolein目录,
    先看看帮助信息。

    10186620-f4b5410b7dfec61c.png
    图片.png

    接下来看看cocos new --help

    10186620-fb50fdb23dece573.png
    图片.png

    然后执行以下命令
    cocos new Demo -p com.demo.mygame -l cpp -d .
    -p 包名,-l cpp,-d .,创建在当前路径。


    10186620-4682d8b061671f27.png
    图片.png

    2、使用CMake

    先看一看目录结构,最常用的就是VS工程proj.win32和AS工程proj.android,


    10186620-2f6ffb29506a7128.png
    图片.png

    1、AS打开proj.android,先把NDK版本设置为r16,不兼容r18的。
    2、打开gradle.properties文件,改PROP_BUILD_TYPE=ndk-build为cmake,其他几个宏也可以改为你需要的值。


    10186620-ae4623e4eaaed363.png
    图片.png

    3、打开CMakeLists.txt

    1. include_directories(
    2. Classes
    3. ${COCOS2DX_ROOT_PATH}/cocos/audio/include/
    4. )
    5. # add cross-platforms source files and header files
    6. list(APPEND GAME_SOURCE
    7. Classes/AppDelegate.cpp
    8. Classes/HelloWorldScene.cpp
    9. )
    10. list(APPEND GAME_HEADER
    11. Classes/AppDelegate.h
    12. Classes/HelloWorldScene.h
    13. )

    include_directories内添加你的库including,
    GAME_SOURCE里添加你的cpp文件,
    GAME_HEADER里添加你的h文件。

    1. cocos_build_app(${APP_NAME}
    2. APP_SRC "${APP_SRC}"
    3. DEPEND_COMMON_LIBS "cocos2d"
    4. DEPEND_ANDROID_LIBS "cocos2d_android"
    5. )

    然后这里我没太搞明白,我就在cocos_build_app后面设置依赖库,
    link_directories(),target_link_libraries()
    4、建立jniLibs目录,
    或者改build.gradle,添加jniLibs.srcDir "libs",建立libs目录,
    把依赖的so库文件都拷进去,

    1. sourceSets.main {
    2. java.srcDir "src"
    3. res.srcDir "res"
    4. jniLibs.srcDir "libs"
    5. manifest.srcFile "AndroidManifest.xml"
    6. assets.srcDir "../../Resources"
    7. }

    PS:
    JNI C++和JAVA相互调用
    JAVA调用C++:
    static native函数,类名要和函数名一致。
    C++调用JAVA:使用JniHelper, FindClass, GetStaticFieldID, GetStaticObjectField, CallVoidMethod, CallStaticVoidMethod,还有各种传参标志。

          </div>
              </div>
    

    转自:https://blog.csdn.net/weixin_34268753/article/details/87055365

  • 相关阅读:
    OS第6次实验报告:使用信号量解决进程互斥访问
    操作系统第5次实验报告:内存管理
    OS第4次实验报告:文件系统
    OS第3次实验报告:命名管道
    Derby小记
    eclipse连接SQL Server2012
    录屏工具——Captura
    OS第2次实验报告:创建进程
    OS第1次实验报告:熟悉使用Linux命令和剖析ps命令
    第四次实验报告:使用Packet Tracer理解RIP路由协议
  • 原文地址:https://www.cnblogs.com/zhangthree/p/10529156.html
Copyright © 2020-2023  润新知