cocos / engine-native

Native engine for Cocos Creator v2.x

Home Page:http://www.cocos.com/en/products

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

如何链接libcocos2d.a开发自己的类库

tuyazuo opened this issue · comments

想做一个蓝牙sdk的类库封装,需要将数据发送到app,用到了se::ScriptEngine::getInstance()->evalString接口。
总是编译不过,总会报头文件查找不到,不知道如何配置xcode项目中的Header Search Paths,希望能得到一些帮助。
开发环境:creator3.1.1,xcode12.5
刚开始查找不到cocos/bindings/jswrapper/SeApi.h文件,于是将resources\3d\engine-native目录加入,可以查找到了。
然后查找不到libplatform.h,于是将resources\3d\engine-native\external\ios\include目录加入,但又报libplatform.h中的#include memory查找不到。

可以在 native/common/CMakeLists.txt 里加搜索路径,比如引擎是这样用的:

target_include_directories(cocos2d PUBLIC 
        ${CWD}/external/sources/EGL
        ${CWD}/external/sources/khronos
    )
  • cocos2d: 程序编译出来的 .a
  • ${CWD}: CMakeLists.txt 文件所在路径

摸索了一番,用xcode解决了这个问题,记录下:

  1. 新建一个target
  2. 配置HEADER_SEARCH_PATHS = (
    "/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native",
    "/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos",
    );
  3. 配置SYSTEM_HEADER_SEARCH_PATHS = "/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/external/ios/include/v8";
  4. 增加一个 preprocessor macro 值 'CC_PLATFORM=1' (表示ios平台)
    这样就可以编译出自己的类库文件了。