1

我想在 Visual Studio 2013 中使用 Dlib(C++ 库)的图像处理包。

我创建了一个空项目并将“dlib-18.16\dlib\all\source.cpp”添加到解决方案资源管理器中的源文件中。然后,我将 dlib-18.16 的路径添加到了 VC++ 目录中的包含目录中,我还将 dlib-18.16\dlib 的路径添加到了 Visual Studio 的 C/C++ General 中的附加包含目录中。

我可以运行作为 Dlib 示例之一的文件 matrix_ex.cpp,但我无法运行文件 face_detection_ex.cpp,因为错误“无法打开包含文件:'type_safe_union/type_safe_union_kernel.h'”实际上是由按行#include <dlib/image_processing/frontal_face_detector.h>

我该如何解决这个问题?为什么程序找到了一些头文件,但在它们都位于同一个文件夹中时却找不到其他头文件?

4

1 回答 1

1

您需要将 dlib 文件夹本身添加到 VC++ 目录中的包含目录中,而是添加了它上面的文件夹。

通过扩展,这意味着您的 include 指令需要是#include <image_processing/frontal_face_detector.h>.

让我列出一个假设的例子来更好地解释。您下载dlib-18.16.tar.bz2并解压到c:\projects. 这将创建一个名为c:\projects\dlib-18.16. c:\projects\dlib-18.16在您添加到包含目录的VC++ 目录中。

但是这是不正确的,您应该删除该目录并添加c:\projects\dlib-18.16\dlib,因为它是项目的包含目录。

这将导致#include <type_safe_union/type_safe_union_kernel.h>加载C:\projects\dlib-18.16\dlib\type_safe_union\type_safe_union_kernel.h以及文件之间的类似内部链接。

于 2015-08-14T18:01:57.327 回答