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
嘗試在宿主機上查找動態庫。
配置成功後執行make
和sudo 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
文件),以減小最終文件的大小。