由于架构差异,opencv在Windows平台下编译的程序无法直接移植到树莓派环境使用,所以需要进行Cmake和跨平台的交叉编译。网上包括官方文档很多足够参考,但配置过程中依然会出现个性问题,以下是本人基于windows下使用visual studio2017集成开发环境进行交叉编译环境配置过程中遇到的问题,记录配置过程,作为补充供大家参考。
**一、工具版本准备:**
Visual studio版本:vs2017
通过Visual studio installer安装如下组件:
交叉编译工具链:raspberry-gcc8.3.0-r3.exe
百度网盘链接:https://pan.baidu.com/s/1-GZlg3WMaRzkKqTlSZY6CA 提取码:ldpa
交叉编译调试工具:VisualGDB 选用VisualGDB-5.5-preview3.msi
百度网盘链接:https://pan.baidu.com/s/1FTJ_BQprpOjGGmlsxNqo4A 提取码:apvj
Opencv版本:Opencv3.4.3
百度网盘链接:https://pan.baidu.com/s/1NFr44kMurzwRLQiKVkL95A 提取码:mf05
pkg-config工具:
百度网盘链接:https://pan.baidu.com/s/1BRNAhE7wyAqojmzlSqYnNQ 提取码:ealw
将以上工具进行下载并安装raspberry-gcc8.3.0-r3和VisualGDB,完成后打开vs2017,界面可能会出现如下选项(如果没有则忽略),**Edition选项**选择Linux,然后点击**APPLY**,**DISSMISS**没有尝试过。
后面步骤请参考,官方链接:
Cross-compiling OpenCV 3 for Raspberry Pi 2 – VisualGDB Tutorials
辅助参考文档链接:
lhttps://github.com/chengzhag/OpenCV_raspberry?tab=readme-ov-file
https://blog.csdn.net/echoszf/article/details/134401156#:~:text=%E6%9C%AC%E6%96%87%E4%B8%BB%E8%A6%81%E4%BB%8B%E7%BB%8D%E9%80%9A%E8%BF%87Visual%20Studio%E5%AF%B9%E6%A0%91%E8%8E%93%E6%B4%BE%E8%BF%9B%E8%A1%8C%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E7%9A%84%E6%96%B9%E6%B3%95%E3%80%82%201%20%E7%8E%AF%E5%A2%83%20%E5%AE%BF%E4%B8%BB%E6%9C%BA%EF%BC%9A%20%E7%B3%BB%E7%BB%9F%EF%BC%9AWindows10%20%E5%BC%80%E5%8F%91%E5%B9%B3%E5%8F%B0%EF%BC%9AVisual%20Studio,Prebuilt%20GNU%20toolchain%20for%20Raspberry%20Pi%20%28%E6%88%91%E4%B8%8B%E7%9A%84%20raspberry-gcc10.2.1-r2.exe%29
**二、配置过程出现问题说明**
为保证一次配置成功,以下是对官方说明文档进行补充:
在步骤4中:vs的build subdirectory子目录选项默认可能是 build/$(ConfigurationName)与官方文档不同,改成与官方文档保持一致的ViusalGDB/$(ConfigurationName)。
在步骤6中:本次交叉编译树莓派配置的libgtk版本为libgtk-3-dev 3.24.5-1+rpt2,可以通过SmarTTY进行查看,同时还要安装libgtk2.0-dev,如果没安装可以通过SmarTTY勾选安装。
步骤7中:同步根目录时,除官方文档给出的目录,还需添加 /usr/share/pkgconfig和/opt/vc目录,同步时间耗时大概1个小时。否则在步骤21 build过程中会出现问题。
步骤13中:如果GTK+ 显示为 NO,则为步骤7中没同步目录成功,或者没有操作步骤5。成功了则显示出树莓派中libGTK的版本。
步骤21中:build耗时大约40分钟,如果出现以下错误,则同步目录可能存在问题。如在显示如下错误,
collect2: error: ld returned 1 exit status,一般与编译器有关,或者版本不匹配或者找不到对应的编译器(找不到编译器又可能是没安装对应编译器也可能是编译器路径找不见)这个错误表明找不见gtk,原因是没有同步成功配置文件。
文章来源:https://www.toymoban.com/news/detail-847640.html
当执行完步骤22的installer target后,新建项目,CmakeList.txt需要添加以下内容,注意在target_link_libraries后面添加标注的部分,容易忽略掉,
find_package(OpenCV REQUIRED)
ocv_include_directories("${OpenCV_SOURCE_DIR}/include")
ocv_include_modules_recurse(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS})
<...>
target_link_libraries(OpenCVDemo ${OpenCV_LIBS} "${LIBRARIES_FROM_REFERENCES}"),
其他步骤继续参考文档,本人生成的可执行文件在树莓派测试成功,效果如下:
文章来源地址https://www.toymoban.com/news/detail-847640.html
到了这里,关于Windows平台visual studio与树莓派跨平台交叉编译opencv的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!