天天看點

Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

引言

在xcode下使用cocos2d-x+Lua開發遊戲項目的過程中,我們隻是把cocos2d-x作為一種工具在使用,而作為cocos2d-x引擎本身,我們基本不會修改底層(或者說是很少修改),那麼問題來了,如果我們需要重編譯或者archive打包的時候,編譯cocos的庫将會占據大部分的時間,基于這種情況,如果我們把cocos(或者一些不會修改的依賴項目)編輯成一個靜态庫的話,勢必會節省很多不必要的編譯時間。

1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)

Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

55EA7405-B045-4DD9-8252-DFBC26653C77.png

  • cocos2d-x項目

    cocos源碼項目,工程檔案是位于 cocos2d-x/build下的cocos2d_libs.xcodeproj檔案。

  • cocos2d_lua_bindings項目

    cocos2d_lua_bindings作為cocos的綁定項目,隻是把cocos的底層功能綁定到lua使用,如果cocos底層不需要修改的話,那麼lua-cocos2d-x也是可以打成靜态庫加到項目中使用的。工程檔案是位于cocos2d-x/cocos/scripting/lua-bindings/proj.ios_mac下的cocos2d_lua_bindings.xcodeproj檔案。

    注:如果隻是使用cocos2d-x開發而不是使用cocos2d-x+Lua的話,則不會有cocos2d_lua_bindings這個項目。

  • simulator項目

    simulator是适用于模拟器的項目,我們完全可以把它對應的iOS和Mac的target打成靜态庫,以對應不同平台。檔案是位于cocos2d-x/tools/simulator/libsimulator/proj.ios_mac下的libsimulator.xcodeproj檔案。

    是以,在使用cocos2d-x開發中,我們可以把cocos2d-x、lua-cocos2dx、simulator項目編譯成靜态庫檔案使用

    2.編譯靜态庫

  • 以cocos2d-x項目為例,Delete項目下的cocos項目,打開 cocos2d-x/build/cocos2d_libs.xcodeproj工程,選擇相應的target。

    如圖,在1處選擇targets為iOS或者Mac,在2處選擇為release或者debug版本。

    Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫
    4FB6CD1E-E18E-4C9C-82D9-2D6D4FA39F6B.png
  • 編譯該工程,編譯成功後,在Products顯示編譯成功的靜态庫,右擊檢視生成在本地的靜态庫。
Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

F7182C01-EB6A-4717-8160-E19A6D992FC8.png

  • 如圖,是生成的各個版本的靜态庫。
Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

48FBD211-2E2B-4670-A979-01C3EC93C7EB.png

  • 可以通過指令:“lipo -info XXX.a”可以檢視靜态庫的适用環境。
Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

F2C4F370-4A9B-4E00-8CF4-86476444062A.png

  • 将.a靜态庫檔案放在項目路徑下(建議建立目錄)。
  • 打開xcode,選擇targets,選擇Build Phases下的Link Binary With Libraries,點選左下角的“+”後選擇“Add Other...”,選擇加到項目路徑下的.a檔案。
Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

136A5798-56C1-4F37-9EA9-97DFAE08F4FA.png

  • 如圖,添加成功。
Cocos2d-x在xcode下開發生成靜态庫添加到項目1.使用cocos2d-x+Lua開發,會用到哪些底層項目(庫)2.編譯靜态庫

F2F45CD1-97DB-4358-A6CA-0B92E2E560A0.png

  • cocos2d_lua_binding項目和libsimulator項目編譯生成靜态庫并加入到項目流程類似,不再贅述。

    注:為了通用起見可以将幾個.a庫進行合并,這樣生成的靜态庫既可以在模拟器下運作,也可以在真機下運作,合并的指令類似于:lipo -create ./Debug-iphonesimulator/libCocosDenshion\ iOS.a ./Debug-iphoneos/libCocosDenshion\ iOS.a -output $OUTPUTDIR_PATH/libCocosDenshion\ iOS.a

文/明天不用上課(簡書作者)

原文連結:http://www.jianshu.com/p/5d7f24f0150a

著作權歸作者所有,轉載請聯系作者獲得授權,并标注“簡書作者”。