目录
2. Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory
编译环境:ubantu 21
ndk版本:r25b
ffmepg版本:4.2.1
环境
下载配置ndk工具
下载
NDK 下载 | Android NDK | Android Developers (google.cn)
解压
unzip android-ndk-r25b-linux-x86_64.zip
配置ndk环境变量
# 打开配置文件
vim /etc/profile
# 保存退出,更新一下环境变量
source /etc/profile
# 测试ndk环境是否配置成功
ndk-build
如果不 是显示“ndk-build not found”, 则说明你的ndk安装成功
下载ffmpeg库并解压
下载地址: http://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2
#解压
tar -jxvf ffmpeg-4.2.1.tar.bz2
解压完成后,进入ffmpeg目录,修改configure文件。 在此文件,你可以选择要编译的模块。
由于编译出来的动态库文件名的版本号在.so之后(例如 “libavcodec.so.5.100.1”),而Android平台不能识别这样的文件名,所以需要修改这种文件名
# 跳到3717行,原来的变量为
#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)'
编写编译脚本
#!/bin/bash
NDK=/root/android/android-ndk-r25b
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/
API=29
function build_android
{
echo "Compiling FFmpeg fo