国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RK3588移植-opencv交叉編譯aarch64

這篇具有很好參考價值的文章主要介紹了RK3588移植-opencv交叉編譯aarch64。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

注意:本文中的所有配置相關路徑都與當前安裝的路徑有關,需要根據(jù)自己的環(huán)境進行自行修改?。。?br> OPENCV如果需要ffmpeg視頻模塊的話,不建議用cmake-gui,有很多bug。建議在ffmpeg相關依賴配置好后使用“問題:”中的cmake命令。

概括

在做yolov5移植rk3588時,由于RKNPU2的example中opencv庫不全,缺少VideoCapture\imshow等函數(shù),所以需要自己重新交叉編譯opencv并將編譯好的aarch64動態(tài)庫導入,由于網(wǎng)上資料很多不可用,故記錄下來操作流程。

準備資源

1.cmake
2.opencv (官網(wǎng)下載,解壓即可)
3.已經(jīng)編譯好的ffmpeg模塊
4.交叉編譯器(這里運行的是ubuntu自帶的aarch64-linux-gnu-…)

編譯Opencv

下載Opencv源碼后,進入Opencv目錄創(chuàng)建build文件夾并進入,之后可以根據(jù)所需模塊運行下面命令。(GTK為imshow函數(shù)所需,不需要可以設置為OFF)。

cd Opencv目錄
mkdir build
cd build
mkdir install_ffmpeg #編譯生成的文件都放到該目錄

sudo cmake  -D CMAKE_BUILD_TYPE=RELEASE  -D CMAKE_C_COMPILER=aarch64-linux-gnu-gcc -D CMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -D BUILD_SHARED_LIBS=ON -D CMAKE_CXX_FLAGS=-fPIC -D CMAKE_C_FLAGS=-fPIC -D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl -D ENABLE_PIC=ON -D WITH_1394=OFF -D WITH_ARAVIS=OFF -D WITH_ARITH_DEC=ON -D WITH_ARITH_ENC=ON -D WITH_CLP=OFF -D WITH_CUBLAS=OFF -D WITH_CUDA=OFF -D WITH_CUFFT=OFF -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_GSTREAMER_0_10=OFF -D WITH_HALIDE=OFF -D WITH_HPX=OFF -D WITH_IMGCODEC_HDR=ON -D WITH_IMGCODEC_PXM=ON -D WITH_IMGCODEC_SUNRASTER=ON -D WITH_INF_ENGINE=OFF -D WITH_IPP=OFF -D WITH_ITT=OFF -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LAPACK=ON -D WITH_LIBREALSENSE=OFF -D WITH_NVCUVID=OFF -D WITH_OPENCL=OFF -D WITH_OPENCLAMDBLAS=OFF -D WITH_OPENCLAMDFFT=OFF -D WITH_OPENCL_SVM=OFF -D WITH_OPENEXR=OFF -D WITH_OPENGL=OFF -D WITH_OPENMP=OFF -D WITH_OPENNNI=OFF -D WITH_OPENNNI2=OFF -D WITH_OPENVX=OFF -D WITH_PNG=OFF -D WITH_PROTOBUF=OFF -D WITH_PTHREADS_PF=ON -D WITH_PVAPI=OFF -D WITH_QT=OFF -D WITH_QUIRC=OFF  -D WITH_TBB=OFF -D WITH_TIFF=ON -D WITH_VULKAN=OFF -D WITH_WEBP=ON -D WITH_XIMEA=OFF -D CMAKE_INSTALL_PREFIX=./install_ffmpeg  -D WITH_GTK=OFF -D WITH_GTK_2_X=OFF  ..

然后再

sudo make -j8
sudo make install 

編譯就成功了。

修改CMakelist文件

example中的樣例使用的是一個簡易的opencv庫,需要切換到自己編譯生成的opencv庫,故需要修改example/rknn_yolov5_demo下的CMakeList.txt文件。
將OpenCV_DIR變量修改為opencv目錄下的install_ffmpeg/lib/cmake/opencv4/,如下圖所示。
注意:這里的路徑必須用絕對路徑由/開頭,不能夠識別~/家目錄

CMakeList.txt:
set(OpenCV_DIR  /home/yi/Downloads/opencv-4.6.0/build/install_ffmpeg/lib/cmake/opencv4) 

進行上序修改之后就可以進行正常編譯了,執(zhí)行sudo ./build-linux_RK3588.sh 即可正確生成可執(zhí)行文件。

將lib庫復制到/lib目錄

雖然已經(jīng)能夠正確生成可執(zhí)行文件,但是如果按照之前的步驟adb push install …一頓操作下,會發(fā)現(xiàn)在板子端運行可執(zhí)行程序仍然會報沒有找到xxx.so文件的錯誤。需要將opencv下所有的.so文件放到install/rknn_yolov5_demo_Linux/lib目錄下。

cp ~/Downloads/opencv-4.6.0/build/install_ffmpeg/lib/*
rknpu2/…/install/rknn_yolov5_demo_Linux/lib

然后再在進入板子的時候添加LD目錄即可正確運行。
在adb shell中的rknn_yolov5_demo_Linux目錄下執(zhí)行
export LD_LIBRARY_PATH=./lib

問題:opencv videoCapture無法運行視頻

參考資料:https://www.cnblogs.com/tangjunjun/p/16527020.html

原因:交叉編譯OPENCV時ffmpeg模塊沒有正確被編譯,cmake時可以看到FFMPEG:NO。需要自行安裝ffmpeg的相關依賴,我的依賴全部交叉編譯在opencv-depend文件夾下(包括ffmpeg)
RK3588移植-opencv交叉編譯aarch64

嘗試添加目錄后進行cmake操作,直到FFMPEG:YES

export LD_LIBRARY_PATH=/ffmpeg_install_path/lib/

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/ffmpeg_install_path/lib/pkgconfig

export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/ffmpeg_install_path/lib/

然后在新建的build目錄下重新執(zhí)行下面編譯語句。

sudo cmake  -D CMAKE_BUILD_TYPE=RELEASE  -D CMAKE_C_COMPILER=aarch64-linux-gnu-gcc -D CMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -D BUILD_SHARED_LIBS=ON -D CMAKE_CXX_FLAGS=-fPIC -D CMAKE_C_FLAGS=-fPIC -D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl -D ENABLE_PIC=ON -D WITH_1394=OFF -D WITH_ARAVIS=OFF -D WITH_ARITH_DEC=ON -D WITH_ARITH_ENC=ON -D WITH_CLP=OFF -D WITH_CUBLAS=OFF -D WITH_CUDA=OFF -D WITH_CUFFT=OFF -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_GSTREAMER_0_10=OFF -D WITH_HALIDE=OFF -D WITH_HPX=OFF -D WITH_IMGCODEC_HDR=ON -D WITH_IMGCODEC_PXM=ON -D WITH_IMGCODEC_SUNRASTER=ON -D WITH_INF_ENGINE=OFF -D WITH_IPP=OFF -D WITH_ITT=OFF -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LAPACK=ON -D WITH_LIBREALSENSE=OFF -D WITH_NVCUVID=OFF -D WITH_OPENCL=OFF -D WITH_OPENCLAMDBLAS=OFF -D WITH_OPENCLAMDFFT=OFF -D WITH_OPENCL_SVM=OFF -D WITH_OPENEXR=OFF -D WITH_OPENGL=OFF -D WITH_OPENMP=OFF -D WITH_OPENNNI=OFF -D WITH_OPENNNI2=OFF -D WITH_OPENVX=OFF -D WITH_PNG=OFF -D WITH_PROTOBUF=OFF -D WITH_PTHREADS_PF=ON -D WITH_PVAPI=OFF -D WITH_QT=OFF -D WITH_QUIRC=OFF  -D WITH_TBB=OFF -D WITH_TIFF=ON -D WITH_VULKAN=OFF -D WITH_WEBP=ON -D WITH_XIMEA=OFF -D CMAKE_INSTALL_PREFIX=./install_ffmpeg  -D WITH_GTK=OFF  ..

注意:下面的語句需要由自己的編譯環(huán)境來改變
(CMAKE_C_COMPILER=aarch64-linux-gnu-gcc、CMAKE_CXX_COMPILER=aarch64-linux-gnu-g++、CMAKE_INSTALL_PREFIX=./install_ffmpeg)

然后再

sudo make -j8
sudo make install 

即可正確編譯opencv。

安裝歷程(history)

最后記錄一下成功安裝的命令行,刪除無效的操作歷史。
可以看到在2007時,我將build文件夾生成的文件全部刪除,相當于什么配置都沒有做。
2008-2018中間有多次sudo cmake的操作,但是經(jīng)過make -j8之后都報錯了,所以最后修改為2018所示的命令。不清楚多次cmake是否會有緩存文件保留。文章來源地址http://www.zghlxwxcb.cn/news/detail-464602.html

 1991  export LD_LIBRARY_PATH=/home/yi/Downloads/opencv-depend/lib
 1992  export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/yi/Downloads/opencv-depend/lib/pkgconfig
 1993  export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/home/yi/Downloads/opencv-depend/lib/pkgconfig
 2005  cd ../
 2006  rm -rf build/*
 2007  sudo rm -rf build/*
 2008  cd build/
 2018  sudo cmake  -D CMAKE_BUILD_TYPE=RELEASE  -D CMAKE_C_COMPILER=aarch64-linux-gnu-gcc -D CMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -D BUILD_SHARED_LIBS=ON -D CMAKE_CXX_FLAGS=-fPIC -D CMAKE_C_FLAGS=-fPIC -D CMAKE_EXE_LINKER_FLAGS=-lpthread -ldl -D ENABLE_PIC=ON -D WITH_1394=OFF -D WITH_ARAVIS=OFF -D WITH_ARITH_DEC=ON -D WITH_ARITH_ENC=ON -D WITH_CLP=OFF -D WITH_CUBLAS=OFF -D WITH_CUDA=OFF -D WITH_CUFFT=OFF -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_GSTREAMER_0_10=OFF -D WITH_HALIDE=OFF -D WITH_HPX=OFF -D WITH_IMGCODEC_HDR=ON -D WITH_IMGCODEC_PXM=ON -D WITH_IMGCODEC_SUNRASTER=ON -D WITH_INF_ENGINE=OFF -D WITH_IPP=OFF -D WITH_ITT=OFF -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LAPACK=ON -D WITH_LIBREALSENSE=OFF -D WITH_NVCUVID=OFF -D WITH_OPENCL=OFF -D WITH_OPENCLAMDBLAS=OFF -D WITH_OPENCLAMDFFT=OFF -D WITH_OPENCL_SVM=OFF -D WITH_OPENEXR=OFF -D WITH_OPENGL=OFF -D WITH_OPENMP=OFF -D WITH_OPENNNI=OFF -D WITH_OPENNNI2=OFF -D WITH_OPENVX=OFF -D WITH_PNG=OFF -D WITH_PROTOBUF=OFF -D WITH_PTHREADS_PF=ON -D WITH_PVAPI=OFF -D WITH_QT=OFF -D WITH_QUIRC=OFF  -D WITH_TBB=OFF -D WITH_TIFF=ON -D WITH_VULKAN=OFF -D WITH_WEBP=ON -D WITH_XIMEA=OFF -D CMAKE_INSTALL_PREFIX=./install_ffmpeg  -D WITH_GTK=OFF ..
 2019  sudo make -j8
 2020  ls
 2021  mkdir install_ffmpeg
 2022  sudo make install
 2023  ls install_ffmpeg/
 2024  history 

到了這里,關于RK3588移植-opencv交叉編譯aarch64的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • iTOP-RK3588開發(fā)板Ubuntu 系統(tǒng)交叉編譯 Qt 工程-命令行交叉編譯

    iTOP-RK3588開發(fā)板Ubuntu 系統(tǒng)交叉編譯 Qt 工程-命令行交叉編譯

    使用源碼 rk3588_linux/buildroot/output/rockchip_rk3588/host/bin/qmake 交叉編譯 QT 工程。 最后燒寫編譯好的 buildroot 鏡像,將編譯好的 QT 工程可執(zhí)行程序在 buildroot 系統(tǒng)上運行。 交叉編譯 QT 工程如下所示,首先進入 QLed 的工程目錄下。 然后使用以下命令交叉編譯 QT 工程,如下圖所示:

    2024年02月13日
    瀏覽(22)
  • libbpf-bootstrap安卓aarch64適配交叉編譯

    libbpf-bootstrap安卓aarch64適配交叉編譯

    起初我也認為,像 libbpf-bootstrap 這樣在ebpf程序開發(fā)中很常用的框架,理應支持不同架構的交叉編譯。尤其是向內核態(tài)的ebpf程序本身就是直接通過clang的 -target btf 直接生成字節(jié)碼,各個內核上的ebpf虛擬機大同小異,對于字節(jié)碼大概率是兼容的。那么問題就落在用戶態(tài)程序生成

    2024年02月09日
    瀏覽(21)
  • aarch64-linux交叉編譯libcurl帶zlib和openssl

    aarch64-linux交叉編譯libcurl帶zlib和openssl

    交叉編譯libcurl需要依賴zlib和openssl 需要先用aarch64工具鏈編譯zlib和openssl gcc用于執(zhí)行交叉編譯 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu sysroot是交叉版本的庫文件集合 sysroot-glibc-linaro-2.25-2019.12-aarch64-linux-gnu 解壓在同一個文件夾下 配置 .cmake 工具鏈文件 aarch64-linux-gnueabi.toolchain.c

    2024年02月10日
    瀏覽(21)
  • RK3588移植opencv(包含opencv_contrib)過程

    RK3588移植opencv(包含opencv_contrib)過程

    后面給大家準備了我自己編譯好的(百度云鏈接),如果有用,麻煩點個贊?。?! PC端:Ubuntu 16.04? opencv 版本:?3.4.13 編譯器:aarch64-linux-gnu 工具:cmake opencv-3.4.13 http://鏈接:https://pan.baidu.com/s/1YBohe41YuOhBZ2iCIupmLA 提取碼:0012 --來自百度網(wǎng)盤超級會員V4的分享 opencv_contrib-3.4.

    2024年02月16日
    瀏覽(24)
  • 交叉編譯----宿主機x86 ubuntu 64位-目標機ARMv8 aarch64

    交叉編譯----宿主機x86 ubuntu 64位-目標機ARMv8 aarch64

    1.交叉編譯是什么,為什么要交叉編譯 編譯:在一個平臺上生成在該平臺上的可執(zhí)行代碼 交叉編譯:在一個平臺上生成在另一個平臺上的可執(zhí)行代碼 交叉編譯的例子:如51單片機的可執(zhí)行代碼(hex文件)是在集成環(huán)境keil上面編譯完成的,我們只需要將編譯好的可執(zhí)行代碼下

    2024年02月15日
    瀏覽(49)
  • 交叉編譯工具 aarch64-linux-gnu-gcc 的介紹與安裝

    交叉編譯工具 aarch64-linux-gnu-gcc 的介紹與安裝

    AArch64 是隨 ARMv8 ISA 一起引入的 64 位架構,用于執(zhí)行 A64 指令的計算機。而且在 AArch64 狀態(tài)下執(zhí)行的代碼只能使用 A64 指令集。,而不能執(zhí)行 A32 或 T32 指令。但是,與 AArch32 中不同,在64位狀態(tài)下,指令可以訪問 64 位和 32 位寄存器。 aarch64-linux-gnu-gcc 是一個交叉編譯工具鏈,可

    2024年04月14日
    瀏覽(19)
  • 安裝交叉編譯工具鏈aarch64-linux-gnu-g++ 以及cmake測試

    ?? 測試文件結構 ?? CMakeLists.txt ?參考文章: linux 交叉編譯 C和C++_aarch64-linux-gnu-gcc查看版本_weixin_45302027的博客-CSDN博客 ubuntu16.04 安裝交叉編譯工具aarch64-linux-gnu-gccg++_ubuntu 安裝aarch64-linux-gnu-gcc_普通網(wǎng)友的博客-CSDN博客

    2024年02月12日
    瀏覽(25)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉編譯環(huán)境及QT編譯arm64架構工程

    Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉編譯環(huán)境及QT編譯arm64架構工程

    苦辣酸甜時光八載,春夏秋冬志此一生 Qt簡介: Qt(官方發(fā)音 [kju:t],音同 cute)是一個跨平臺的 C++ 開發(fā)庫,主要用來開發(fā)圖形用戶界面(Graphical User Interface,GUI)程序,當然也可以開發(fā)不帶界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系統(tǒng)有很多,例如通用

    2024年01月23日
    瀏覽(49)
  • rk3588/rk356x/rv1109/rv1126 live555移植+mpp編譯 rtsp拉流

    rk3588/rk356x/rv1109/rv1126 live555移植+mpp編譯 rtsp拉流

    本文主要是為了記錄一下rk板子的踩坑日記。 項目主要是rk3588 rtsp拉流。 1.下載MPP源碼:https://github.com/rockchip-linux/mpp 2.rk3588/rk356x的板子進入Mpp源碼目錄 mpp/build/linux/aarch64 (rk3588/rk356x是64位板子)中,修改 arm.linux.cross.cmake 文件中的配置 修改 make-Makefiles.bash 的配置,主要改

    2023年04月19日
    瀏覽(41)
  • 基于RK3588的嵌入式linux系統(tǒng)開發(fā)(二)——uboot源碼移植及編譯

    基于RK3588的嵌入式linux系統(tǒng)開發(fā)(二)——uboot源碼移植及編譯

    ??????? 由于官方的SDK占用空間較大(大約20GB左右),需要聯(lián)系相關供應商提供,且官方的SDK通過各種腳本文件進行集成編譯,難以理解系統(tǒng)開發(fā)的詳細過程。本章介紹直接從官方Github網(wǎng)站下載源碼進行移植,進行uboot移植及編譯,具體內容如下所述: 1.進入官方的github網(wǎng)

    2024年01月16日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包