You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下VS开发C++适配树莓派4(64位)的OpenCV配置求助

在Windows的Visual Studio中为64位树莓派4交叉编译带OpenCV的C++程序

首先明确:必须交叉编译OpenCV(以及后续的YOLO)库。Windows和树莓派的ARM64 Linux属于完全不同的系统架构与二进制环境,Windows上编译的库无法直接在树莓派运行。

以下是面向新手的详细配置流程:

一、准备交叉编译工具链

  • 安装Visual Studio时,勾选「Linux开发工作负载」,该组件会自带适配ARM64 Linux的交叉编译工具链(树莓派4 64位为ARM64架构),无需手动下载第三方工具。
  • 安装完成后,VS会自动完成基础环境配置,直接即可使用。

二、交叉编译OpenCV for ARM64 Linux

  1. 下载OpenCV稳定版源码(推荐4.5.x系列,避免最新开发版的兼容性问题),解压到本地任意目录。
  2. 在源码目录下新建build文件夹,打开VS的「开发者命令提示符(Visual Studio版本)」,切换到该build目录。
  3. 执行CMake命令生成VS工程:
    cmake -G "Visual Studio 17 2022" -A ARM64 -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=arm64-linux-gnu-g++ -DCMAKE_INSTALL_PREFIX=D:\opencv-arm64-linux ..
    
    说明:-A ARM64指定目标架构为ARM64;CMAKE_SYSTEM_NAME=Linux声明目标系统;CMAKE_INSTALL_PREFIX是编译完成后库文件的输出路径(可自行修改)。
  4. 生成工程后,用VS打开该CMake项目,切换到「Release」模式,右键点击「INSTALL」目标并执行编译。完成后,指定的输出目录会包含树莓派可用的OpenCV头文件与库文件。

三、配置VS项目以交叉编译到树莓派

  1. 新建「Linux项目(C++)」,或把现有Windows项目转换为Linux项目(在项目属性中修改平台工具集)。
  2. 进入项目属性配置:
    • 「配置属性→常规」:平台工具集选择「Linux GCC」,目标平台选「ARM64」。
    • 「配置属性→C/C++→常规」:附加包含目录添加OpenCV的include路径(如D:\opencv-arm64-linux\include)。
    • 「配置属性→链接器→常规」:附加库目录添加OpenCV的lib路径(如D:\opencv-arm64-linux\lib)。
    • 「配置属性→链接器→输入」:附加依赖项添加需要的OpenCV库文件名(如libopencv_core.so、libopencv_imgproc.so,注意是Linux的.so后缀)。
  3. 编写测试代码验证:
    #include <opencv2/opencv.hpp>
    using namespace cv;
    int main() {
        Mat img = imread("test.jpg");
        imshow("Test", img);
        waitKey(0);
        return 0;
    }
    
  4. 编译完成后,将生成的二进制文件和依赖的OpenCV .so库文件传到树莓派,执行chmod +x <程序文件名>赋予执行权限,即可运行。

四、新手避坑提示

  • 先单独跑通OpenCV的交叉编译与测试,再尝试集成YOLO——YOLO依赖更多,复杂度更高,分步推进更稳妥。
  • 若觉得CMake命令繁琐,可使用VS的CMake可视化界面:打开项目的CMakeLists.txt,点击「CMake」菜单→「更改CMake设置」,选择「Linux ARM64」,VS会自动生成配置文件,只需在其中添加find_package(OpenCV REQUIRED)和target_link_libraries(你的项目名 ${OpenCV_LIBS})即可。
  • 树莓派上需提前安装OpenCV运行依赖,例如显示窗口需要的libgtk-3-dev,执行sudo apt-get install libgtk-3-dev即可安装。
  • 先编译一个输出Hello World的简单程序传到树莓派运行,确认交叉编译工具链正常后,再添加OpenCV相关代码。

内容的提问来源于stack exchange,提问作者Zmur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:15:43