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
- 下载OpenCV稳定版源码(推荐4.5.x系列,避免最新开发版的兼容性问题),解压到本地任意目录。
- 在源码目录下新建
build文件夹,打开VS的「开发者命令提示符(Visual Studio版本)」,切换到该build目录。 - 执行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是编译完成后库文件的输出路径(可自行修改)。 - 生成工程后,用VS打开该CMake项目,切换到「Release」模式,右键点击「INSTALL」目标并执行编译。完成后,指定的输出目录会包含树莓派可用的OpenCV头文件与库文件。
三、配置VS项目以交叉编译到树莓派
- 新建「Linux项目(C++)」,或把现有Windows项目转换为Linux项目(在项目属性中修改平台工具集)。
- 进入项目属性配置:
- 「配置属性→常规」:平台工具集选择「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后缀)。
- 编写测试代码验证:
#include <opencv2/opencv.hpp> using namespace cv; int main() { Mat img = imread("test.jpg"); imshow("Test", img); waitKey(0); return 0; } - 编译完成后,将生成的二进制文件和依赖的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
相关产品推荐
相关产品推荐

