如何在iPad模拟器中构建C ++ ICU库?

时间:2017-12-05 02:29:07

标签: c++ ios xcode ipad icu

我正在尝试将C ++ ICU库构建到iPad模拟器中。经过一番工作,我成功地用ICU建立了我的项目。 但启动iPad模拟器时会出现崩溃,并且控制台中没有显示错误消息。我的构建步骤有什么问题?

崩溃是在下面的汇编语言中,我不知道这意味着什么。

Crash Position

构建环境:

Xcode:8.3.3 iPad Air 2 Simulator

我只是按照某人博客中的步骤操作。以下是步骤:

  1. 下载ICU,进入该文件夹并运行命令。

    mkdir hostbuild
    cd hostbuild 
    sh ../icu/source/runConfigureICU MacOSX
    gnumake
    
  2. 设置一些env变量,configure和make。

    DEVROOT=/XXXX/Platforms/iPhoneSimulator.platform/Developer
    SDKROOT=$DEVROOT/SDKs/iPhoneSimulator10.3.sdk 
    SYSROOT=$SDKROOT  
    ICU_MYSRC=/Users/lin/ICU/icu 
    
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode_8.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode_8.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    export CXXPP=  
    export CXXPPFLAGS=  
    export CPPFLAGS="-I$SDKROOT/usr/include/ -I$ICU_MYSRC/source/common/ -I$ICU_MYSRC/source/tools/tzcode/  "  
    export CFLAGS="$CPPFLAGS -pipe -no-cpp-precomp -isysroot $SDKROOT"  
    export CPP="/usr/bin/cpp $CPPFLAGS"  
    export CXXFLAGS="$CFLAGS"   
    export CC="/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
    export CXX="/Applications/Xcode_8.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
    export LDFLAGS="-L$SDKROOT/usr/lib/ -isysroot $SDKROOT -Wl,-dead_strip" 
    
    mkdir iphonebuild
    cd iphonebuild
    sh ../icu/source/configure --host=x86_64-apple-darwin -with-cross-build=/Users/lin/ICU/hostbuild
    gnumake
    
  3. 现在我们在iphonebuild / lib中获取dylib。我们需要在Xcode中导入它们。 在构建设置,其他链接标记中,添加 -licuuc -licui18n -licutu -licudata -licuio 库搜索路径,添加 XXXX / iphonebuild / lib

    构建阶段,将二进制文件链接到库: 并且 XXXX / iphonebuild / lib中的5 dylib,libicuuc.60.1.dylib libicui18n.60.1.dylib libicutu.60.1.dylib libicudata.60.1.dylib libicuio.60.1.dylib

  4. 使用 install_name_tool 将dylib更改为目标可执行文件中的正确位置。

  5. 运行项目,上面提到的错误Crash Position发生了。

0 个答案:

没有答案