编译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里的所有内容)

Releases · opencv/opencv

Tags · opencv/opencv_contrib

都在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

 

不勾选所有的python、test,我使用的C++部署,不用python。如果您需要,请勾选。

之后,多次点击Configure,直到没有红色。

观察下CMake界面打印的文字内容:

 之后,点击Generate

5、打开build文件夹,在该文件夹里鼠标右键,打开终端

make -j8

等编译结束后,如下操作会自动拷贝目标文件到之前图中默认的 /usr/local/ 里

make install

 

6、在Ubuntu x64电脑上,建个项目,生成的可执行程序拷贝到 jetson平台上运行即可

代码参考 编译OpenCV——ubuntu x86_64平台 - 夕西行 - 博客园

 

【参考】

 aarch64-opencv341交叉编译,并在arm上部署helloopencv_aarch64 交叉编译器-CSDN博客

posted @ 2024-12-02 17:44  夕西行  阅读(10)  评论(0编辑  收藏  举报