slibname_with_major='$(slibname).$(libmajor)'
lib_install_extra_cmd='$$(ranlib)"$(libdir)/$(libname)"'
slib_install_name='$(slibname_with_version)'
slib_install_links='$(slibname_with_major)
$(slibname)'
替換為
slibname_with_major='$(slibpref)
$(fullname)-$(libmajor)
$(slibsuf)'
lib_install_extra_cmd='$$(ranlib)"$(libdir)/$(libname)"'
slib_install_name='$(slibname_with_major)'
slib_install_links='$(slibname)'
編寫shell指令碼直接生成類庫
#!/bin/bash
make clean
export ndk=/usr/ndk/android-ndk-r10e
export sysroot=$ndk/platforms/android-9/arch-arm/
export toolchain=$ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
export cpu=arm
export prefix=$(pwd)/android/$cpu
export addi_cflags="-marm"
./configure --target-os=linux \
--prefix=$prefix --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$toolchain/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$sysroot \
--extra-cflags="-os -fpic $addi_cflags" \
--extra-ldflags="$addi_ldflags" \
$additional_configure_flag
make clean
make
make install
注意:shell指令碼的名字為sh
編譯生成
把shell指令碼放入ffmpeg目錄裡面,也就是和configure檔案在同乙個目錄,直接執行指令碼就會生成我們需要的庫檔案,執行命令 ./指令碼名稱。注意:我們的ffmpeg的檔案可能沒有許可權執行,使用 chmod 777 -r ffmpeg使ffmpeg檔案加下的所有檔案獲得最高許可權
編譯成功後會出現乙個android資料夾,包含的是arm平台的動態庫,我們只需要取出ffmpeg八大模組對應大版本庫就行了
你會發現android目錄下還有乙個include資料夾,那是我們生成的標頭檔案。
易錯點
使用NDK編譯ffmpeg庫
1 在 然後熱行如下命令安裝ndk,我是在ubuntu 14.04下安裝的,在win下要裝cygwin,會麻煩很多,不推薦。它官方的安裝提示如下 on linux and mac os x darwin 2.open a terminal window.3.go to the directory t...
NDK開發(五) Ubuntu編譯FFmpeg
ubuntu 14.0 amd64 64bit ffmpeg tag n2.6.9 ndk r15c cd usr mkdir ndk 建立ndk目錄 mkdir jason 建立ffmpeg目錄 1.目錄給許可權 chmod 777 r ndk 2.解壓android ndk r15c linux...
使用NDK編譯mono
2.匯出ndk目錄到環境變數 export ndk var data android ndk r10e 3.執行ndk的工具鏈 ndk build tools make standalone toolchain.sh platform android 18 install dir tmp my an...