HarmonyOS交叉编译FFmpeg

SYY_秀儿IP属地: 河北
0.104字数 165阅读 2,392

一、下载Harmony交叉编译工具

https://gitee.com/openharmony-sig/oh-inner-release-management/blob/master/Release-Testing-Version.md#openharmony_32106sp6版本转测试信息

image.png

二、FFmpeg源码下载

下载tag版本n6.0、master编译不成功。
https://github.com/FFmpeg/FFmpeg/releases/tag/n6.0

三、修改交叉编译环境

将以下脚本放到ohos-sdk/native/llvm/bin目录下

aarch64-linux-ohos-clang

#!/bin/bash
bin_dir=`dirname "$0"`
if [ "$1" != "-cc1" ]; then
    "$bin_dir/clang" --target=aarch64-linux-ohos "$@"
else
    # Target is already an argument.
    "$bin_dir/clang" "$@"
fi

aarch64-linux-ohos-clang++

#!/bin/bash
bin_dir=`dirname "$0"`
if [ "$1" != "-cc1" ]; then
    "$bin_dir/clang++" --target=aarch64-linux-ohos "$@"
else
    # Target is already an argument.
    "$bin_dir/clang++" "$@"
fi

arm-linux-ohos-clang

#!/bin/bash
bin_dir=`dirname "$0"`
if [ "$1" != "-cc1" ]; then
    "$bin_dir/clang" --target=arm-linux-ohos "$@"
else
    # Target is already an argument.
    "$bin_dir/clang" "$@"
fi

arm-linux-ohos-clang++

#!/bin/bash
bin_dir=`dirname "$0"`
if [ "$1" != "-cc1" ]; then
    "$bin_dir/clang++" --target=arm-linux-ohos "$@"
else
    # Target is already an argument.
    "$bin_dir/clang++" "$@"
fi

四、ffmpeg交叉编译脚本

set -x
# 目标HarmonyOS版本
# 编译arm64-v8a 配置CPU为aarch64
# 编译armeabi-v7a 配置CPU为arm
CPU=aarch64
#so库输出目录
OUTPUT=$(pwd)/harmonyos/$CPU
OH_SDK=/home/android/ohos-sdk/linux
# 编译环境
SYSROOT=$OH_SDK/native/sysroot
CC=$OH_SDK/native/llvm/bin/$CPU-linux-ohos-clang
STRIP=$OH_SDK/native/llvm/bin/llvm-strip
LD=$OH_SDK/native/llvm/bin/$CPU-linux-ohos-clang
OPTIMIZE_CFLAGS="-march=$CPU"
HOST_CC=$OH_SDK/native/llvm/bin/$CPU-linux-ohos-clang
HOST_LD=$OH_SDK/native/llvm/bin/$CPU-linux-ohos-clang
HOST_LD_FLAG=-L/home/android/ohos-sdk/linux/native/sysroot/usr/lib/$CPU-linux-ohos
function build
{
  ./configure \
  --prefix=$OUTPUT \
  --target-os=linux \
  --cpu=$CPU \
  --disable-asm \
  --enable-cross-compile \
  --disable-x86asm \
  --enable-shared \
  --enable-static \
  --disable-doc \
  --disable-htmlpages \
  --disable-optimizations \
  --cc=$CC \
  --ld=$LD \
  --strip=$STRIP \
  --sysroot=$SYSROOT \
  --host-cc=$HOST_CC \
  --host-ld=$HOST_LD \
  --host-os=linux \
  --host-ldflags=$HOST_LD_FLAG \
  --extra-cflags="-Os -fpic" \
  --disable-vulkan \
  --disable-stripping

  make clean all
# 这里是定义用几个CPU编译
  make -j8
  make install
}
build
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
2人点赞
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
总资产0.104共写了165字获得2个赞共1个粉丝

推荐阅读更多精彩内容

  • 夏天,人们喜欢游泳,经常遇到耳朵进水,或者平常洗头洗澡的时候,也很容易遇到耳朵进水的情况。 有时,耳朵进水了一直在...
    耳鸣耳聋好了阅读 57评论 0 0
  • 镜像下载、域名解析、时间同步请点击 阿里云开源镜像站[https://developer.aliyun.com/m...
    萌褚阅读 1,151评论 0 2
  • 学习资料: kernel-security-learning[https://github.com/bsauce/...
    bsauce阅读 4,349评论 0 0
  • 《春怨》刘方平纱窗日落渐黄昏,金屋无人现泪痕。寂寞空庭春欲晚,梨花满地不开门。突然刷到这首诗,很喜欢。首先喜欢这首...
    杨Jack阅读 55评论 0 0
  • 2023年10月27日,早上好! 1、中国移动:6G或最晚2030年投入商用; 2、神舟十七号载人飞船成功对接空间...
    鹏城穆羽阅读 41评论 0 1