我正在尝试将C ++ ICU库构建到iPad模拟器中。经过一番工作,我成功地用ICU建立了我的项目。 但启动iPad模拟器时会出现崩溃,并且控制台中没有显示错误消息。我的构建步骤有什么问题?
崩溃是在下面的汇编语言中,我不知道这意味着什么。
构建环境:
Xcode:8.3.3 iPad Air 2 Simulator
我只是按照某人博客中的步骤操作。以下是步骤:
下载ICU,进入该文件夹并运行命令。
mkdir hostbuild
cd hostbuild
sh ../icu/source/runConfigureICU MacOSX
gnumake
设置一些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
现在我们在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
使用 install_name_tool 将dylib更改为目标可执行文件中的正确位置。
运行项目,上面提到的错误Crash Position发生了。