Windows平台visual studio与树莓派跨平台交叉编译opencv

由于架构差异,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,原因是没有同步成功配置文件。


当执行完步骤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}"),
其他步骤继续参考文档,本人生成的可执行文件在树莓派测试成功,效果如下:

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为了在Visual Studio中安装OpenCV静态库,可以按照以下步骤进行操作: 1. 首先,在OpenCV官网下载所需版本的OpenCV库文件。本例以OpenCV 4.0.0的Release版本为例。 2. 下载完成后,使用CMake来编译OpenCV静态链接库。CMake是一个平台的开源工具,可以根据项目的需要生成所需的构建脚本。具体的编译步骤可以参考OpenCV官方文档或相关教程。 3. 编译完成后,会生成一个名为staticlib的文件夹,其中包含了所需的静态库文件。将这些库文件复制到合适的位置,以便在Visual Studio中使用。 4. 打开Visual Studio,创建一个新的项目或打开现有项目。 5. 在Visual Studio中,右击项目,在弹出的菜单中选择“属性”选项。 6. 在项目属性窗口中,选择“VC++目录”选项卡。在“包含目录”字段中添加OpenCV头文件的路径,通常是OpenCV的安装路径下的include文件夹。 7. 在“库目录”字段中添加OpenCV静态库文件的路径,通常是staticlib文件夹的路径。 8. 在“链接器”选项卡下的“输入”字段中,添加所需的OpenCV库文件的名称。比如对于OpenCV的核心模块,可以添加opencv_core400.lib。 9. 点击“应用”按钮,然后点击“确定”按钮,保存更改。 10. 现在,可以在项目中使用OpenCV库函数了。在代码中引入OpenCV库的头文件,并使用相应的函数。 需要注意的是,具体的步骤可能会因OpenCV版本或Visual Studio版本的不同而有所差异。建议参考OpenCV官方文档或相关教程以获得最新的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值