使用 opencv_contrib 模块成功构建后,OpenCV 3.1.0 中缺少 face.hpp

Missing face.hpp in OpenCV 3.1.0 after successful build with opencv_contrib modules

我正在使用 OpenCV 在 C++ 中做一个项目并坚持添加人脸识别模块

我已经使用以下 make 命令毫无错误地构建了 OpenCV 的额外模块 (opencv_contrib)

$ cmake -D CMAKE_BUILD_TYPE=RELEASE OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ../opencv-3.1.0  
$ make 
$ sudo make install

我的代码涉及以下内容,因为我复制了代码进行测试

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/face.hpp"        //-----> Doesn't exist

当我尝试在 code::blocks 中构建代码时显示以下错误:

~/Desktop/OpenCV_Project/OpenCv_Demos/Face_Recognition/main.cpp|6|fatal error: opencv2/face.hpp: No such file or directory|

我也搜索了链接目录,没有文件 face.hpp

如何确保在 make/make 安装后额外的模块确实是用 openCV 源构建的?

其他要求:
Ubuntu15.10
Code::blocks16.10
gcc 版本 5.2.1

显然我通过执行以下操作设法解决了这个问题。

1.Navigate到opencv_contrib/modules目录复制人脸文件夹
2.Navigate到opencv-3.1.0/module目录下粘贴。
3.Make 构建文件夹(或构建的任何位置)并执行以下 make 命令。

cmake -D CMAKE_BUILD_TYPE=RELEASE  ..

即没有额外的模块(因为我们已经在 opencv-3.1.0/modules 中复制了所需的模块)

4.Then

make
sudo make install

我想知道这种方法的缺点是什么以及为什么它没有在任何地方记录。