moerjielovecookie

Sawen_Blog

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

OK3568開發環境配置-Ubuntu-22.04

OK3568 官方資料和 Ubuntu22.04 虛擬機映像如下:
透過雲端硬碟分享的文件:OK3568 - 資料 - 開發虛擬機

1 系統映像編譯#

下載雲端硬碟裡的源碼,解壓後即可得到 OK3568_Linux_fs.tar。解壓 OK3568_Linux_fs.tardl.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 文件),以減小最終文件的大小。
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。