라이브러리만 미리 빌드해 둔다

5931 단어 cocos2d-x
cocos new 명령으로 새 프로젝트를 만들면 라이브러리를 포함한 모든 소스에서 빌드되도록 설정됩니다. 라이브러리 내의 세세한 움직임까지 조정할 수 있어 편리합니다만, 평상시 거의 편집하지 않는 것에 대해서는 조금 clean하고 싶을 때 어쩐지 1부터 풀 빌드 되어 버리는 것은, 무엇인가 귀찮습니다.
ver3.3 근처에서 라이브러리만을 빌드하는 툴이 동봉되어 있으므로, 그것의 사용법을 소개합니다.

gen-prebuilt


tools/gen-prebuilt 아래 스크립트가 있습니다. README대로 gen_prebuilt_libs.py => module_organize.py 를 순서대로 실행하면 헤더와 객체가 생성됩니다. 전자는 라이브러리의 빌드를, 후자는 라이브러리와 필요한 헤더를 정리해 줍니다만, 프로젝트의 구성 나름으로는 후자는 불필요할지도 모릅니다. 그건 그렇고, cocos2d-x3.6과 xcode6.4에서 시도한 결과 오류가 발생했기 때문에 조금 수정했습니다.
diff --git a/frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj b/frameworks/cocos2d-~
index dfc045f..a64c03e 100644
--- a/frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj
+++ b/frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj
@@ -9524,7 +9524,6 @@
                                SDKROOT = iphoneos;
                                TARGETED_DEVICE_FAMILY = "1,2";
                                USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/free~
-                               VALID_ARCHS = "arm64 armv7";
                        };
                        name = Debug;
                };
@@ -9556,7 +9555,6 @@
                                SDKROOT = iphoneos;
                                TARGETED_DEVICE_FAMILY = "1,2";
                                USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/free~
-                               VALID_ARCHS = "arm64 armv7";
                        };
                        name = Release;
                };
diff --git a/frameworks/cocos2d-x/tools/gen-prebuilt/build_config.json b/frameworks/cocos2d-x/tools/~
index 0c250ef..9563a83 100644
--- a/frameworks/cocos2d-x/tools/gen-prebuilt/build_config.json
+++ b/frameworks/cocos2d-x/tools/gen-prebuilt/build_config.json
@@ -2,11 +2,11 @@
     "xcode_proj_info" : {
         "build/cocos2d_libs.xcodeproj" : {
             "outputdir" : "prebuilt",
-            "targets" :[ "build all libs" ]
+            "targets" :[ "libcocos2d" ]
         },
         "cocos/scripting/lua-bindings/proj.ios_mac/cocos2d_lua_bindings.xcodeproj" : {
             "outputdir" : "prebuilt",
-            "targets" : [ "build all lualibs" ]
+            "targets" : [ "libluacocos2d" ]
         }
     },
     "win32_proj_info" : {

(※추기) 실기로 빌드하는 경우 등을 위해서, Build Active Architecture Only를 NO로 해 둡니다.
diff --git frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj
index b66e1f8..a64c03e 100644
--- frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj
+++ frameworks/cocos2d-x/build/cocos2d_libs.xcodeproj/project.pbxproj
@@ -9521,7 +9521,6 @@
                    "\"$(SRCROOT)/../external/websockets/prebuilt/ios\"",
                    "\"$(SRCROOT)/../external/chipmunk/prebuilt/ios\"",
                );
-               ONLY_ACTIVE_ARCH = NO;
                SDKROOT = iphoneos;
                TARGETED_DEVICE_FAMILY = "1,2";
                USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../external/freetype2/include/ios $(SRCROOT)/../external/curl/include/ios $(SRCROOT)/../external/webp/include/ios $(SRCROOT)/../external/tiff/include/ios $(SRCROOT)/../external/jpeg/include/ios $(SRCROOT)/../external/png/include/ios $(SRCROOT)/../external/websockets/include/ios $(SRCROOT)/../external/chipmunk/include/chipmunk $(SRCROOT)/../external/freetype2/include/ios/freetype2";
diff --git frameworks/cocos2d-x/cocos/scripting/lua-bindings/proj.ios_mac/cocos2d_lua_bindings.xcodeproj/project.pbxproj frameworks/cocos2d-x/cocos/scripting/lua-bindings/proj.ios_mac/cocos2d_lua_bindings.xcodeproj/project.pbxproj
index df1cdb5..f3bd4c3 100644
--- frameworks/cocos2d-x/cocos/scripting/lua-bindings/proj.ios_mac/cocos2d_lua_bindings.xcodeproj/project.pbxproj
+++ frameworks/cocos2d-x/cocos/scripting/lua-bindings/proj.ios_mac/cocos2d_lua_bindings.xcodeproj/project.pbxproj
@@ -1256,7 +1256,6 @@
                HEADER_SEARCH_PATHS = "";
                IPHONEOS_DEPLOYMENT_TARGET = 5.1;
                LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../../../../external/lua/luajit/prebuilt/ios";
-               ONLY_ACTIVE_ARCH = NO;
                PRODUCT_NAME = "libluacocos2d iOS";
                SDKROOT = iphoneos;
                TARGETED_DEVICE_FAMILY = "1,2";

연결하다



나머지는 링크하기만 하면 됩니다. 먼저 원래 있던 라이브러리에 대한 참조를 지웁니다.

파일 자체는 남겨두지 않기 때문에 MoveTrash하지 않고 RemoveReference합니다. 의존 관계도 xcode가 좋게 해주므로 지우는 것만으로 괜찮습니다.
다른 라이브러리와 마찬가지로 TARGETS => General => Linked Frameworks and Libraries에서 추가합니다.

좋은 웹페이지 즐겨찾기