Windows + Visual studio 2017环境

最近回归图形学研究,听说这两年 GAMES 公开课很火,特意简单翻了翻闫令琪老师 GAMES101 公开课的PPT,的确讲得非常好。里面提到配置作业环境一项,简单验证后,受不了用虚拟机做开发环境(鼠标卡顿、飘忽),所以尝试在Windows 下搭建开发环境,本地写起来才爽。

简单记录一下环境配置方法:

1. 安装 Eigen

下载 Eigen 3.4.0 代码,解压到一个目录 eigen3 里,比如说在我这里,我就是解压到:

1
D:\OpenSource\eigen-3.4.0

最后的目录结构是这样:

1
2
D:\OpenSource\eigen-3.4.0
D:\OpenSource\eigen-3.4.0\eigen3

Eigen 是用模板写成的代码,所以直接在工程里引用 Eigen 代码即可。

2. 安装 OpenCV

我用的是 OpenCV 4.6.0,可以给 Visual Studio 14 或 15 版本(即对应于 Visual Studio 2015 或 2017 版本)使用。

安装好 OpenCV 后,为了让 cmake 能找到 OpenCV,在 Windows 环境变量里,新建一个名叫 OpenCV_DIR 的环境变量,并指向安装目录:

1
D:\OpenSource\opencv\build

这样在执行 cmake 命令的时候,就能找到 OpenCV 库。

3. 配置作业

下载作业文件解压,修改 CMakeLists.txt 文件,把其中对应的 Linux 头文件路径,改为上述第1步里 eigen 所在的路径,即把:

1
include_directories(/usr/local/include)

改为

1
include_directories(D:/OpenSource/eigen-3.4.0/)

4. 生成作业 Visual Studio 工程文件

采用 cmake 命令生成工程,我习惯新建一个 shadow 目录,把 cmake 生成的文件一股脑放进去:

1
2
3
mkdir shadow
cd shadow
cmake -D OpenCV_DIR=D:/OpenSource/opencv/build/x64/vc15/lib -G "Visual Studio 15 2017" -A x64 ..

注意,这里需要在 cmake 命令里指定 OpenCV_DIR,否则会提示如下错误

1
2
but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
NOT FOUND.

5. 检查 Visual Studio 2017 工程属性

因为使用了 C++ 17 标准,所以需要在 Visual studio 2017 里检查编译器设置是否符合要求,通过选项:

1
project > Properties > C/C++ > Language > C++ Language Standard

选取“ISO C++17 标准 (/std:c++17)”即可。

现在应该就可以愉快地在 Windows 下做 GAMES 的作业了。

从环境上来说,用 Linux 或是 Mac 的确是要方便一些,起码编译环境要容易配置一些;如果在 Windows 下使用 Visual Studio 就会显得略微麻烦,必须要配置好版本、相对库的路径等,还面临一个开发工具收费的问题。

备注:

原版虚拟机环境:

  1. OpenCV 3.2.0,通过命令查看:

    1
    
    pkg-config --modversion opencv
    
  2. Eigen 3.3.7,查看头文件:

    1
    
    /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
    

    就知道 Eigen 的代码版本:

    1
    2
    3
    
    #define EIGEN_WORLD_VERSION 3
    #define EIGEN_MAJOR_VERSION 3
    #define EIGEN_MINOR_VERSION 7