iOSプロジェクトで使用するためにCライブラリをコンパイルしようとしていますが、ビットコードを埋め込みたいとします。ビットコードとdylib
私は正常に各archをターゲットとする静的ライブラリを構築できます。これらの静的ライブラリにはビットコードが含まれています(otoolを使用してチェックされています)が、動的ライブラリにはビットコードが含まれていません。どうして? dylibではビットコードがサポートされていませんか?
ビルドしようとしているライブラリはxzです。ここにスクリプトがあります
build_iOS()
{
ARCH=$1
if [ $ARCH == "i386" ] || [ $ARCH == "x86_64" ];
then
SDKROOT="$(xcodebuild -version -sdk iphonesimulator | grep -E '^Path' | sed 's/Path: //')"
else
SDKROOT="$(xcodebuild -version -sdk iphoneos | grep -E '^Path' | sed 's/Path: //')"
fi
export CC="$(xcrun -sdk iphoneos -find clang)"
export CFLAGS="-fembed-bitcode -isysroot $SDKROOT -arch ${ARCH} -miphoneos-version-min=9.0"
export LDFLAGS="-arch ${ARCH} -isysroot $SDKROOT"
if [ $ARCH == "i386" ] || [ $ARCH == "x86_64" ];
then
./configure --prefix=$XZPATH/build/iOS/$ARCH --host=i686-apple-darwin11 --disable-static --enable-shared
else
./configure --prefix=$XZPATH/build/iOS/$ARCH --host=arm-apple-darwin --disable-static --enable-shared
fi
make && make install && make clean
}
build_iOS i386
build_iOS x86_64
build_iOS armv7
build_iOS armv7s
build_iOS arm64
ありがとうございます!
私はあなたの答えは不明です。サポートビットコード。私はビットコードをサポートしていることを示唆、この答えを見つけた:http://stackoverflow.com/a/38125767/2302437。また、 '-fembed-bitcode'を追加すると、ファイルサイズが大きく増加します。それはなぜですか? –
@BenMartenまあ、私はビットコードもdylibでサポートできると思います!しかし、私が答えの時に行った実験は、私がdylibからビットコードを抽出することができないことを示しました。また、liblzma.aをliblzma.dylibに置き換えようとした後、Xcodeはliblzma.dylibにビットコードが含まれていないと訴えました。たぶん私は間違ったことをしたでしょうか? – Automatic
ビットコードをチェックしたい場合は、 'ebcutil'をチェックしてください:https://github.com/JDevlieghere/LibEBC。 (免責事項:私は図書館の著者です) – Jonas