我想在 xcode5 中重建协议缓冲区 staticlib,在http://code.google.com/p/protobuf/downloads/list
使用 autogen.sh
下载协议缓冲区
,我得到一个配置文件,可以在 mac 上制作和安装,我编写一个 shell 脚本尝试为 iOS 构建 glib,如下所示:
export ARCH=arm-apple-darwin10
export ARCH_PREFIX=${ARCH}-
export PLATFORM=iPhoneOS
export SDKVER=7.0
export DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/${PLATFORM}.platform/Developer
export SDKROOT="$DEVROOT/SDKs/${PLATFORM}$SDKVER.sdk"
export Toolchains=/Applications/Xcode.app/Contents/Developer/Toolchains
export XcodeClangBin="$Toolchains/XcodeDefault.xctoolchain/usr/bin"
export XcodeCpp="$Toolchains/XcodeDefault.xctoolchain/usr/bin/cpp"
export PKG_CONFIG_PATH="$SDKROOT/usr/lib/pkgconfig:$DEVROOT/usr/lib/pkgconfig"
export AS="$DEVROOT/usr/bin/as"
export ASCPP="$DEVROOT/usr/bin/as"
export AR="$DEVROOT/usr/bin/ar"
export RANLIB="$DEVROOT/usr/bin/ranlib"
export CPP="$XcodeCpp"
export CXXCPP="$XcodeCpp"
export CC="$XcodeClangBin/clang"
export CXX="$XcodeClangBin/clang++"
export LD="$DEVROOT/usr/bin/ld"
export STRIP="$DEVROOT/usr/bin/strip"
export CPPFLAGS="-pipe -no-cpp-precomp -I$SDKROOT/usr/include"
export CFLAGS="-arch armv7 -arch armv7s -fmessage-length=0 -pipe -fpascal-strings -no-cpp-precomp -miphoneos-version-min=5.0 --sysroot='$SDKROOT' -isystem $SDKROOT/usr/include"
export CXXFLAGS="$CFLAGS -I$SDKROOT/usr/include/c++/4.2.1/${ARCH}/v6"
export LDFLAGS="--sysroot='$SDKROOT' -L$SDKROOT/usr/lib -L$SDKROOT/usr/lib/system"
./configure --host=${ARCH} --with-protoc=protoc --enable-static --disable-shared --prefix=/tmp/protobuf/arm
make clean
make
make check
make install
当我运行这个脚本时,返回:
#error Unsupported architecture
我能做些什么?
在ios6,xcode 4.6,我可以使用这个配置文件来构建,但是在xcode5中,llvm-gcc被删除了,我用clang替换它,但是失败了。
在 ios6 中,使用这个
export CPP="$DEVROOT/usr/bin/llvm-cpp-4.2"
export CXXCPP="$DEVROOT/usr/bin/llvm-cpp-4.2"