Android libpng-1.6.37交叉編譯

生成soname取消版本信息

  1. 編譯腳本
#libpng
export ANDROID_NDK_HOME=/Users/xxx/Library/Android/android-ndk-r21b
PLATFORM=$ANDROID_NDK_HOME/platforms/android-26/arch-arm/
PREBUILT=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt
PREFIX=$YTXPLAYER_PATH/android/contrib/jni/jniLibs
TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64

echo $PREFIX
     
CFLAGS="-fpic -DANDROID -ffunction-sections -msoft-float -lm"

CROSS_COMPILE=$PREBUILT/darwin-x86_64/bin/armv7a-linux-androideabi26-
LDFLAGS=-L${PREFIX}/lib
export CXX="${CROSS_COMPILE}clang++ --sysroot=${TOOLCHAIN}/sysroot"
export CC="${CROSS_COMPILE}clang --sysroot=${TOOLCHAIN}/sysroot"
export NM="${PREBUILT}/darwin-x86_64/bin/arm-linux-androideabi-nm"
export STRIP="$PREBUILT/darwin-x86_64/bin/arm-linux-androideabi-strip"
export RANLIB="$PREBUILT/darwin-x86_64/bin/arm-linux-androideabi-ranlib"
export AR="$PREBUILT/darwin-x86_64/bin/arm-linux-androideabi-ar"
export LD="$PREBUILT/darwin-x86_64/bin/arm-linux-androideabi-ld"

./configure --prefix=$PREFIX \
--host=arm-linux \

make
make install

應(yīng)為libpng的編譯是由makefile先生成libtool工具所需要lo、la為后綴的文件,在通過libtool工具編譯代碼的所以要先修改Makefile.in, 添加-avoid-version來取消soname的版本控制,diff如下:

--- Makefile.in 2019-04-15 02:10:32.000000000 +0800
+++ ../../libpng-1.6.37/Makefile.in 2020-12-07 18:36:47.000000000 +0800
@@ -771,8 +771,7 @@
    $(am__append_4) $(am__append_5)
 nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = pnglibconf.h
 libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined \
-   -export-dynamic -version-number \
-   @PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0 \
+   -export-dynamic -avoid-version \
    $(am__append_6) $(am__append_7) $(am__append_8)
 @HAVE_LD_VERSION_SCRIPT_FALSE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym
 @HAVE_LD_VERSION_SCRIPT_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers

參考網(wǎng)站:
https://my.oschina.net/xgcode/blog/3022214

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容