On Tue, Nov 23, 2010 at 3:47 AM, Marcus Better <[email protected]> wrote:
> On 1 Nov, 16:39, Marcus Better <[email protected]> wrote: > > I wonder if anyone has built libprotobuf-lite for the iOS, and if > > there are any special pitfalls? > > Yes I have, and of course I will share my findings with the world for > the benefit of mankind. > :) > I also have a follow-up question: the libprotobuf-lite.a static > library is about 500 kB which seems a little heavy. Is this normal? > I've tried to strip the symbol information but maybe that didn't > succeed. > Last I checked it was more like 100k on gcc/x86/linux, but on another compiler/arch/platform I suppose anything could happen. Note that if you don't use extensions, you can drop extension_set.cc from the library which saves a considerable amount of binary size. > We're using iOS SDK 4.0 with the PLBlocks compiler. The script needs > some adjustments if you are not using PLBlocks. > > This produces the ARM library: > > ----------------------------------------- > export ARCH=arm-apple-darwin10 > export ARCH_PREFIX=$ARCH- > export PLATFORM=iPhoneOS > > export SDKVER="4.0" > export DEVROOT=/Developer/Platforms/${PLATFORM}.platform/Developer > export SDKROOT="$DEVROOT/SDKs/${PLATFORM}$SDKVER.sdk" > 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="$DEVROOT/usr/bin/cpp" > export CXXCPP="$DEVROOT/usr/bin/cpp" > #export CC="$DEVROOT/usr/bin/arm-apple-darwin10-llvm-gcc-4.2" > PLBLOCKS="/Developer/Library/PLBlocks/Compilers/gcc42-iphoneos3.2" > export CC="$PLBLOCKS/usr/bin/${ARCH_PREFIX}gcc-4.2.1" > #export CXX="$DEVROOT/usr/bin/arm-apple-darwin10-llvm-g++-4.2" > export CXX="$PLBLOCKS/usr/bin/${ARCH_PREFIX}g++-4.2.1" > #export LD="$DEVROOT/usr/bin/ld" > export LD="$PLBLOCKS/usr/bin/ld" > export STRIP="$DEVROOT/usr/bin/strip" > > export CPPFLAGS="-pipe -no-cpp-precomp -I$SDKROOT/usr/lib/gcc/${ARCH}/ > 4.2.1/include -I$SDKROOT/usr/include -I$DEVROOT/usr/include" > export CFLAGS="-fmessage-length=0 -pipe -fpascal-strings -no-cpp- > precomp -miphoneos-version-min=3.1.3 --sysroot='$SDKROOT' -isystem > $SDKROOT/usr/lib/gcc/${ARCH}/4.2.1/include -isystem $SDKROOT/usr/ > include -isystem $DEVROOT/usr/include" > export CXXFLAGS="$CFLAGS -I$SDKROOT/usr/include/c++/4.2.1/${ARCH}/v6" > export LDFLAGS="--sysroot='$SDKROOT' -L$SDKROOT/usr/lib -L$DEVROOT/usr/ > lib" > > ./configure --host=${ARCH} --with-protoc=protoc --enable-static -- > disable-shared > ------------------------------ > > And the i386 version for the simulator: > --------------------------------------- > export ARCH=i686-apple-darwin10 > export ARCH_PREFIX=${ARCH}- > export PLATFORM=iPhoneSimulator > > export SDKVER="4.0" > export DEVROOT=/Developer/Platforms/${PLATFORM}.platform/Developer > export SDKROOT="$DEVROOT/SDKs/${PLATFORM}$SDKVER.sdk" > 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="$DEVROOT/usr/bin/cpp" > export CXXCPP="$DEVROOT/usr/bin/cpp" > #export CC="$DEVROOT/usr/bin/arm-apple-darwin10-llvm-gcc-4.2" > PLBLOCKS="/Developer/Library/PLBlocks/Compilers/gcc42-macosx10.6" > export CC="$PLBLOCKS/usr/bin/${ARCH_PREFIX}gcc-4.2.1" > #export CXX="$DEVROOT/usr/bin/arm-apple-darwin10-llvm-g++-4.2" > export CXX="$PLBLOCKS/usr/bin/${ARCH_PREFIX}g++-4.2.1" > #export LD="$DEVROOT/usr/bin/ld" > export LD="$PLBLOCKS/usr/bin/ld" > export STRIP="$DEVROOT/usr/bin/strip" > > export CPPFLAGS="-pipe -no-cpp-precomp -I$SDKROOT/usr/lib/gcc/${ARCH}/ > 4.2.1/include -I$SDKROOT/usr/include -I$DEVROOT/usr/include" > export CFLAGS="-fmessage-length=0 -pipe -fpascal-strings -no-cpp- > precomp -miphoneos-version-min=3.1.3 --sysroot='$SDKROOT' -isystem > $SDKROOT/usr/lib/gcc/${ARCH}/4.2.1/include -isystem $SDKROOT/usr/ > include -isystem $DEVROOT/usr/include" > export CXXFLAGS="$CFLAGS -I$SDKROOT/usr/include/c++/4.2.1/${ARCH}/v6" > export LDFLAGS="--sysroot='$SDKROOT' -L$SDKROOT/usr/lib -L$DEVROOT/usr/ > lib" > > ./configure --with-protoc=protoc --enable-static --disable-shared > ------------------------------------------------------------------ > > Cheers, > > Marcus > > -- > You received this message because you are subscribed to the Google Groups > "Protocol Buffers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<protobuf%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/protobuf?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.
