• 静态库的使用
    • 创建静态库
    • 使用静态库

    静态库的使用

    和任何大型项目一样,Cocos2d-x 引擎是由数千个源文件组成。通过这些源文件,你可以了解到引擎内部工作的原理,你可以根据需要修改这些文件。但是这种自由是有代价的!不是金钱,而是更有价值的东西,时间!编译时间!

    每当项目的源文件发生更改时,编译器都会重新编译所有文件,包含引擎的源码,这样编译一个项目,都将花费相当长的时间,每天都可能会编译多次,加起来总编译时间非常可怕!幸运的是有一个简单的解决方案,使用静态库。将引擎源码编译为静态库,在这个过程中引擎的所有源码会被编译成一个单独的静态库文件,然后你可以将这个库链接到项目中。这样在编译项目的时候,引擎源码不会被编译,编译时间就会大大缩短。

    创建静态库

    静态库可以在 iOS, macOS, AndroidWin32 这些平台上使用。

    在项目中使用静态库之前,你需要先将静态库创建出来。假设你已经配置好 cocos 命令行工具 了,请这样操作:

    1. # remove the 'prebuilt' folder
    2. # without the -m flag, this builds for release mode
    3. # generates libraries for every platform (ios, mac, android, win32)
    4. cocos gen-libs -c
    5. # remove the 'prebuilt' folder
    6. # without the -m flag, this builds for release mode
    7. # generates libraries for just ios
    8. cocos gen-libs -c -p ios
    9. # remove the 'prebuilt' folder
    10. # without the -m flag, this builds for release mode
    11. # generates libraries for just ios and android
    12. cocos gen-libs -c -p ios -p android
    13. # remove the 'prebuilt' folder
    14. # with the -m flag, this builds for debug
    15. # generates libraries for just ios and android
    16. cocos gen-libs -c -p ios -m debug

    构建静态库的过程由于不同的硬件和软件配置,可能需要几分钟到几个小时。构建完成后,静态库会放在引擎根目录下 prebuilt 子目录。在 Cocos2d-x 的项目中,你可以配置静态库链接到这个位置,这样这个目录内的静态库就可以在多个项目中使用。你也可以将静态库文件复制到单个项目中,或其它你觉得合适的位置。

    运行 cocos gen-libs —help 来查看更多关于构建静态库的帮助信息。

    使用静态库

    在项目中使用构建的静态库是很简单的,只需要将库简单的添加到项目中,并设置头文件和包含文件的搜索路径。具体的绝对路径取决于你的环境,你需要添加的一系列路径是:

    头文件搜索路径:

    1. # Project level
    2. /path_to_cocos2d-x/cocos2d-x/
    3. /path_to_cocos2d-x/cocos2d-x/cocos
    4. /path_to_cocos2d-x/cocos2d-x/cocos/base /path_to_cocos2d-x/cocos2d-x/cocos/physics /path_to_cocos2d-x/cocos2d-x/cocos/math
    5. /path_to_cocos2d-x/cocos2d-x/cocos/2d
    6. /path_to_cocos2d-x/cocos2d-x/cocos/ui /path_to_cocos2d-x/cocos2d-x/cocos/network /path_to_cocos2d-x/cocos2d-x/cocos/audio/include /path_to_cocos2d-x/cocos2d-x/cocos/editor-support /path_to_cocos2d-x/cocos2d-x/extensions
    7. /path_to_cocos2d-x/cocos2d-x/external /path_to_cocos2d-x/cocos2d-x/external/chipmunk/include/chipmunk
    8. # Target level
    9. /path_to_cocos2d-x/cocos2d-x/cocos/platform/ios /path_to_cocos2d-x/cocos2d-x/cocos/platform/ios/Simulation

    包含文件搜索路径:

    1. /path_to_cocos2d-x/cocos2d-x/prebuilt/ios
    /path_to_cocos2d-x 指引擎根目录的路径

    原文: http://docs.cocos.com/cocos2d-x/manual/zh/editors_and_tools/prebuilt_libraries.html