代码拉取完成,页面将自动刷新
sudo apt-get install yasm gperf autogen autoconf automake libtool
make PLAT=x64 base ffmpeg5
make PLAT=x64 install
https://www.msys2.org/
pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain base-devel
pacman -S mingw-w64-x86_64-nasm mingw-w64-i686-nasm nasm unzip
pacman -S mingw-w64-x86_64-yasm mingw-w64-i686-yasm
## 如过程出现安装失败,可用下面指令升级安装包数据库
pacman -Sy archlinux-keyring && pacman -Su
编译x64版本时使用 mingw64.exe 命令行窗口
编译x86版本时使用 mingw32.exe 命令行窗口
例如:
cd /c/xxx 进入C盘目录
cd /d/xxx 进入D盘目录
mingw64.exe 命令窗口使用 make -f win_x64.mk base ffmpeg
mingw32.exe 命令窗口使用 make -f win_x86.mk base ffmpeg
## 安装成功后环境变量不会立即生效,关闭重开终端即可
brew install pkg-config yasm
## x86_64 cpu
make -f macos_x86_64.mk base ffmpeg5
make -f macos_x86_64.mk install
## m1 cpu
make -f macos_arm64.mk base ffmpeg5
make -f macos_arm64.mk install
## 安装成功后环境变量不会立即生效,关闭重开终端即可
brew install pkg-config yasm
## arm64 cpu
make -f ios_arm64.mk base ffmpeg5
make -f ios_arm64.mk install
## 其它cpu参考上面两行指令,对应改用ios_armv7.mk、ios_x86_64.mk(x86_64模拟器)
1. 类似安卓,使用llvm+sysroot目录的方式来编译目标文件。交叉编译器用来通过configure阶段,之后将替换为clang(llvm);
2. 目前(3.2Beta版)支持三种架构:arm(armeabi-v7a)、aarch64(arm64-v8a)、x86_64 在编译时通过"clang --target=aarch64-linux-ohos"来指定架构类型.
1. llvm和交叉编译器可以从OpenHarmony的全量源码里取得
prebuilts/clang/ohos/linux-x86_64/llvm
prebuilts/gcc/linux-x86/arm/gcc-linaro-7.5.0-arm-linux-gnueabi (arm/armeabi-v7a)
prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu (aarch64/arm64-v8a)
2. sysroot文件夹在安装deveco studio并下载native sdk之后,在native目录内取得,从windows拷贝到ubuntu20;
3. 把 llvm/bin 和交叉编译器的 bin 目录添加到 PATH 环境变量
4. 检查
clang --help
aarch64-linux-gnu-gcc -v
arm-linux-gnueabi-gcc -v
5. 修改 platform 目录下 ohos-xxx.mk 里面的 LLVM 和 SYSROOT 指向自己的路径
## aarch64(arm64-v8a)版本
make -f ohos.mk PLAT=aarch64 base ffmpeg5
make -f ohos.mk PLAT=aarch64 install
## arm(armeabi-v7a)版本
make -f ohos.mk PLAT=arm base ffmpeg5
make -f ohos.mk PLAT=arm install
不要被arm、armeabi-v7a、arm64-v8a、arm64、aarch64、armv7这些符号绕晕,他们大致的一个等价关系:
arm ~ armv7 ~ armeabi ~ armeabi-v7a
arm64 ~ aarch64 ~ arm64-v8a
amd64 ~ x86_64
所以看到前面配置写 arm64-v8a 后面又写作 aarch64 时不必奇怪,他们都是同一个架构类型,至少在当前工程如此
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。