moerjielovecookie

Sawen_Blog

一个普通工科牲的博客网站
x
github
follow
email

OK3568开发环境配置-Ubuntu-22.04

OK3568 官方资料和 Ubuntu22.04 虚拟机镜像如下:
通过网盘分享的文件:OK3568 - 资料 - 开发虚拟机

1 系统镜像编译#

下载网盘里的源码,解压后即可得到 OK3568_Linux_fs.tar。解压 OK3568_Linux_fs.tar和dl.tar.bz2,将 dl 移动到 OK3568_Linux_fs/buildroot 后可加速编译系统镜像。
编译系统镜像的教程如下:
04_相关代码编译

2 交叉编译安装软件#

交叉编译器路径为 OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-,在 ~/.bashrc 中配置环境变量 export PATH="/home/forlinx/3568/OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:$PATH"

2.1 ffmpeg-2.4.14#

在源码文件夹里首先运行 configure 脚本。

./configure \
--prefix=/usr/local \
--cross-prefix=aarch64-none-linux-gnu- \
--arch=aarch64 \
--target-os=linux \
--enable-cross-compile \
--disable-static \
--enable-shared \
--pkg-config-flags="--static"
  • --prefix=/usr/local: 指定 FFmpeg 在目标机上的安装路径。
  • --cross-prefix=aarch64-none-linux-gnu-: 最关键的参数,它告诉 configure 脚本使用 aarch64-none-linux-gnu- 作为所有编译器和工具的前缀。
  • --arch=aarch64: 指定目标 CPU 架构。
  • --target-os=linux: 指定目标操作系统为 Linux。
  • --enable-cross-compile: 明确启用交叉编译模式。
  • --disable-static: 只编译动态库(.so 文件),这通常能减小最终文件的大小。
  • --enable-shared: 编译动态链接库。
  • --pkg-config-flags="--static": 避免在交叉编译时,pkg-config 尝试在宿主机上查找动态库。
    配置成功后执行 makesudo make install,编译好的库文件、头文件和可执行文件安装到 /usr/local 目录下。

2.2 log4cplus-2.0.7#

configure 命令如下:

./configure --host=aarch64-none-linux-gnu --prefix=/usr/local
  • --host=aarch64-none-linux-gnu:这是最重要的参数,它确保 make 命令会调用正确的交叉编译器。
  • --prefix=/usr/local:这个参数指定了 log4cplus 在目标机上的安装路径。如果未指定,默认也是 /usr/local

2.3 zeromq-4.0.8#

configure 命令如下:

./configure --host=aarch64-none-linux-gnu --prefix=/usr/local --enable-shared --disable-static
  • --host=aarch64-none-linux-gnu: 最关键的参数,它告诉 configure 脚本,您正在为 aarch64 架构进行交叉编译。
  • --prefix=/usr/local: 指定 ZeroMQ 在目标机上的安装路径。
  • --enable-shared: 编译动态链接库(.so 文件)。
  • --disable-static: 不编译静态库(.a 文件),以减小最终文件的大小。
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。