编译OpenCV——jetson嵌入式平台
其他平台参考:编译OpenCV——Windows平台,适应VS版本 - 夕西行 - 博客园
jetson嵌入式平台的系统为:ubuntu20.04 aarch64
不再研究Ubuntu x64上交叉编译ubuntu aarch64的OpenCV库,因为无法识别到arm的GTK导致编译不进去,最终imshow时会报如下错误:
modules/highgui/src/window.cpp:611:error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure
直接在jetson平台上编译OpenCV则不会出现此问题。
但是x64上也编译下arm64版本的opencv和x64版本的opencv,这样不用在x64和jetson之间考来考去了。参考编译opencv后的跨平台使用问题 - 夕西行 - 博客园
1、下载源码(zip压缩包)后,鼠标右键,解压这两个压缩包。新建个build文件夹(最终得到的是build/install里的所有内容)
都在src文件夹里
2、安装编译工具
#安装cmake和arm64版gcc、g++ sudo apt install -y cmake cmake-gui sudo apt install -y gcc-aarch64-linux-gnu sudo apt install -y g++-aarch64-linux-gnu
3、安装一些依赖
sudo apt-get install -y build-essential sudo apt-get install -y libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libcanberra-gtk-module sudo apt-get install -y libtbb-dev libjpeg-dev libpng-dev
GTK是一个开源的跨平台GUI工具包,使用imshow等函数会用到。也可以用qt作界面,但需要安装qt,此处不再赘述。
4、CMake界面设置
打开CMake界面,选择目录后,点击Configure。注意选择aarch64的gcc、g++
注意下图目录,最终的文件(include、bin、lib等)会自动拷贝到此路径的对应目录中。
勾选nonfree并指定modules路径
勾选world,否则生成很多的so,不方便配置
勾选BUILD_ZLIB、BUILD_JPEG、WITH_JPEG、BUILD_PNG、WITH_PNG
如果需要cuda版本,勾选WITH_CUDA
之后,多次点击Configure,直到没有红色。
观察下CMake界面打印的文字内容:
之后,点击Generate
5、打开build文件夹,在该文件夹里鼠标右键,打开终端
sudo make -j8
等编译结束后,如下操作会自动拷贝目标文件到之前图中默认的 /usr/local/ 里
sudo make install
6、在Ubuntu x64电脑上,建个项目,生成的可执行程序拷贝到 jetson平台上运行即可
代码参考 编译OpenCV——ubuntu x86_64平台 - 夕西行 - 博客园
【参考】
aarch64-opencv341交叉编译,并在arm上部署helloopencv_aarch64 交叉编译器-CSDN博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-12-02 图像的特征
2019-12-02 光圈与景深