ffpmeg windows WSl 编译so

1.NDK 环境变量配置
2.git clone ffpmeg
3.创建脚本(需先下载gcc编译器)
64位脚本如下

#!/bin/bash

export NDK=/home/test/ndk20 #这里配置先你的 NDK 路径
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64


function build_android
{

./configure \
--prefix=$PREFIX \
--enable-neon  \
--enable-hwaccels  \
--enable-gpl   \
--disable-postproc \
--disable-debug \
--enable-small \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-static \
--enable-shared \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$CROSS_PREFIX \
--target-os=android \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS"

make clean
make -j16
make install

echo "============================ build android arm64-v8a success =========================="

}

#arm64-v8a
ARCH=arm64
CPU=armv8-a
API=21
CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU"

build_android

在这里插入图片描述

32位如下:

#!/bin/bash

export NDK=/home/test/ndk20 #这里配置先你的 NDK 路径
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64


function build_android
{

./configure \
--prefix=$PREFIX \
--enable-neon  \
--enable-hwaccels  \
--enable-gpl   \
--disable-postproc \
--disable-debug \
--enable-small \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-static \
--enable-shared \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$CROSS_PREFIX \
--target-os=android \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS"

make clean
make -j16
make install

echo "============================ build android arm-v7a success =========================="

}

#armv7-a
ARCH=arm  # 主要改这个
CPU=armv7-a # 主要改这个
API=21
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang# 主要改这个
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++ # 主要改这个
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi- # 主要改这个
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU"

build_android


### 编译Linux应用程序于WSL #### 准备工作 为了确保可以在Windows Subsystem for Linux(WSL)环境中顺利编译Linux应用程序,需先确认已经正确安装并设置了WSL以及所选的Linux发行版。通常推荐使用Ubuntu作为首选项[^1]。 #### 更新软件包列表与安装构建工具 在开始之前,应当更新系统的软件包索引,并安装必要的开发工具链。这一步骤能够保证后续编译过程中的依赖关系得到满足: ```bash sudo apt update && sudo apt upgrade -y ``` 上述命令不仅会刷新本地存储库的信息,还会下载最新的安全补丁和其他改进;`build-essential`则包含了GCC编译器套件以及其他一些常用的构建工具[^2]。 #### 获取源码 接下来就是获取想要编译的应用程序源代码。如果该应用托管在一个版本控制系统如Git之上,则可通过如下方式克隆仓库到本地目录中: ```bash git clone https://github.com/example/project.git cd project ``` 这里假设目标项目的地址为`https://github.com/example/project.git`,实际操作时应替换为目标项目的具体URL[^3]。 #### 配置与编译 进入项目根目录之后,大多数开源项目都会附带有一个名为`configure`的脚本或者是`Makefile`文件用于指导编译流程。对于前者来说,一般做法是运行: ```bash ./configure make ``` 而对于那些直接提供了`Makefile`的情况,则只需执行`make`即可触发整个编译链条。某些情况下可能还需要指定额外参数给`configure`脚本来调整最终产物的行为特性或是优化选项等。 #### 测试与安装 完成编译后,建议先通过内置测试集验证新生成二进制文件的功能完整性。很多大型项目都带有专门为此设计的目标,在这种情形下可以尝试运行`make check`或类似的指令来进行自我检验。一旦确信无误便能正式将其安置至系统路径之下供日后调用了——通常是借助`sudo make install`来达成此目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南一舟110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值