- 难题:
使用cmake编译,死活找不到ffmpeg
使用cmake-gui,能找到ffmpeg,不能编译。
- 解决思路
结合cmake和cmake-gui。
为了给初次编译的朋友一点方便,这里专门完整详细记录。
- 安装编译环境
其他的略。
apt -y install cmake cmake-qt-gui
apt -y install build-essential pkg-config
- 安装跨平台编译器工具
可以使用ubuntu自带的arm编译系统。
OpenCV交叉编译ARM版本_用cmake-gui交叉编译poco的arm版本-CSDN博客
也可以使用指定的编译系统。此处使用的是自己找指定的编译系统,安装目录服务是:
/opt/linux/x86-arm/aarch64-mix210-linux
- 修改网址
虚拟机/etc/hosts和主机C:\Windows\System32\drivers\etc,都增加一句:
185.199.108.133 raw.githubusercontent.com
- 编译ffmpeg
嵌入式交叉编译:ffmpeg及相关库_嵌入式ffmpeg交叉编译-CSDN博客
- 最关键之第1步,配置PKG_CONFIG_PATH
在.bashrc中增加一句,就是ffmpeg的编译目录所在:
BUILD_DIR=${HOME}/build_libs
export PKG_CONFIG_PATH=${BUILD_DIR}/lib/pkgconfig:${PKG_CONFIG_PATH}
重开一个终端,或使用source生效。
- 下载OpenCV
下载后,解压在同一个目录中,如opencv-arm。
Tags · opencv/opencv_contrib · GitHub
- 运行cmake-gui
如果想把上次的设置清除,可以点击:菜单, File, Delete Cache。

- 最关键之第2步
点Yes:

选择如图:

输入编译器(注意PATH设置),点Finish:

耐心等待结束。
- Configure完成,检查ffmpeg
如果出错,WITH_FREETYPE/WITH_PNG/WITH_GTK/BUILD_opencv_dnn等去掉勾,再次点击Configure即可。

盼望已久的ffmpeg终于找到啦!
- 最关键之第3步,现在再用cmake编译
嵌入式交叉编译:arm版OpenCV(三种编译脚本)-CSDN博客
-
$ file libopencv_videoio.so.4.10.0
libopencv_videoio.so.4.10.0: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, with debug_info, not stripped -
测试运行
略。