是的,Visual Studio 2017(VS2017)可以编译 OpenCV 4.5.5 为 32 位(x86)版本,但需要注意以下几点:
✅ 兼容性说明
- OpenCV 4.5.5 官方支持的最低 Visual Studio 版本是 VS2015(即
vc14
) ,因此 VS2017(vc15
)完全兼容。 - CMake 会自动识别 VS2017 并生成对应的
vc15
工具链。 - 生成的 DLL 将位于
x86/vc15/
目录下。
🔧 编译命令(针对 VS2017)
在你的构建目录中(如 D:\opencv\build_x86
),运行以下 CMake 命令:
bash
cmake -G "Visual Studio 15 2017" -A Win32 ^
-D CMAKE_BUILD_TYPE=Release ^
-D CMAKE_INSTALL_PREFIX=D:/opencv/install_x86 ^
-D BUILD_opencv_world=ON ^
-D BUILD_EXAMPLES=OFF ^
-D BUILD_TESTS=OFF ^
-D BUILD_PERF_TESTS=OFF ^
-D WITH_OPENMP=ON ^
D:/opencv/opencv-4.5.5
📝 关键点:
-G "Visual Studio 15 2017"
:必须指定这个生成器名称(注意是 "15",不是 "2017" 数字版本)-A Win32
:显式指定 32 位架构(VS2017 支持多平台,需明确)
然后编译:
在 VS2017 中打开生成的 OpenCV.sln
,选择 Release + Win32 配置,生成 INSTALL
项目。
⚠️ 注意事项
- 确保安装了 VS2017 的 C++ 桌面开发 workload(包含 MSVC v141 工具集)。
- 不要使用过旧的 CMake:建议 CMake ≥ 3.10(VS2017 支持从 CMake 3.8 开始,但新版更稳)。
- 编译出的文件路径示例:
- DLL:
D:/opencv/install_x86/x86/vc15/bin/opencv_world455.dll
- LIB:
D:/opencv/install_x86/x86/vc15/lib/opencv_world455.lib
- DLL:
✅ 验证是否成功
用 dumpbin
检查架构(VS2017 开发者命令行中运行):
cmd
dumpbin /headers opencv_world455.dll | find "machine"
应输出:
14C machine (x86)
总结
可以!VS2017 完全支持编译 OpenCV 4.5.5 的 32 位版本 ,只需在 CMake 中正确指定生成器为
"Visual Studio 15 2017"
并加上-A Win32
。
如需我提供完整批处理脚本(.bat
)或带 opencv_contrib
的配置命令,请告诉我。