Windows 源码安装
小技巧
Windows 不直接提供 Visual Studio *.sln 工程文件,需要用 CMake 来构建生成。一是 CMake 跨平台、易配置、可持续维护,二是第三方代码(glog, OpenCV)也都是用的 CMake 构建。
前提条件
CMake(提供构建)
CMake,用于构建编译(必要)。
安装好上述工具后,在命令提示符(Command Prompt)里确认可运行此些命令:
>cmake --version
cmake version 3.10.1
Visual Studio(提供编译)
安装好 Visual Studio 后,在其 Visual Studio Command Prompt 里确认可运行如下命令:
>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26429.4 for x86
>msbuild
Microsoft (R) 生成引擎版本 15.7.179.6572
MSYS2(提供 Linux 命令)
安装后,确认系统环境变量 PATH 里添加了如下路径:
C:\msys64\usr\bin
然后,打开 MSYS2 MSYS ,执行更新并安装 make :
$ pacman -Syu
$ pacman -S make
最终,命令提示符(Command Prompt)里可以运行如下命令:
>make --version
GNU Make 4.2.1
获取代码
git clone https://github.com/Cyperstereo/CyperstereoSDK.git
小技巧
OpenCV 官方提供了 exe 进行安装。如果想从源码编译,请见官方文档 Installation in Windows 。或参考如下命令:
>git clone https://github.com/opencv/opencv.git
>cd opencv
>git checkout tags/3.4.1
>cd opencv
>mkdir _build
>cd _build
>cmake ^
-D CMAKE_BUILD_TYPE=RELEASE ^
-D CMAKE_INSTALL_PREFIX=C:/opencv ^
-D WITH_CUDA=OFF ^
-D BUILD_DOCS=OFF ^
-D BUILD_EXAMPLES=OFF ^
-D BUILD_TESTS=OFF ^
-D BUILD_PERF_TESTS=OFF ^
-G "Visual Studio 15 2017 Win64" ^
..
>msbuild ALL_BUILD.vcxproj /property:Configuration=Release
>msbuild INSTALL.vcxproj /property:Configuration=Release
msbuild 路径可参考 ``C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe``
编译代码
小技巧
如果 OpenCV 安装到了自定义目录或想指定某一版本,编译前可如下设置路径:
# OpenCV_DIR 为 OpenCVConfig.cmake 所在目录
set OpenCV_DIR=C:\opencv\_build
不然, CMake 会提示找不到 OpenCV 。如果不想依赖 OpenCV ,请阅读 sdk_without_opencv 。
编译:
cd ~/CyperstereoSDK/samples
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" ..
msbuild ALL_BUILD.vcxproj /property:Configuration=Release
运行样例:
#save image and imu samples 保存图像和imu
mkdir left
mkdir right
mkdir imu
.\save_image_imu
#capture image and imu samples 采集显示图像和imu
.\capture_image_imu
小技巧
所有编译出的样例程序 exe 都会有个相应的 bat 。 bat 会临时设定下系统环境变量,然后再运行 exe 。所以建议执行 bat 运行程序。
如果直接运行 exe 的话,可能会报 dll 找不到。说明你需要将 <sdk>\_install\bin %OPENCV_DIR%\bin 加入到系统环境变量 PATH 里。
OpenCV 如何设定环境变量,可见官方文档 Set the OpenCV environment variable and add it to the systems path 。
