我想在Visual Studio 2013中使用Dlib(C ++库)的图像处理包。
我创建了一个空项目,并在解决方案资源管理器中将“dlib-18.16 \ dlib \ all \ source.cpp”添加到我的源文件中。然后,我将dlib-18.16的路径添加到VC ++目录中的Include目录中,并且还将dlib-18.16 \ dlib的路径添加到我在Visual Studio的C / C ++ General中的其他包含目录中。
我可以运行文件matrix_ex.cpp,这是Dlib的一个示例,但我无法运行文件face_detection_ex.cpp,因为错误“无法打开包含文件:'type_safe_union / type_safe_union_kernel.h'”实际上是由行#include <dlib/image_processing/frontal_face_detector.h>
如何解决此问题?为什么程序找到一些头文件,但是当它们都位于同一个文件夹中时却无法找到其他文件?
答案 0 :(得分:1)
您需要将dlib文件夹本身添加到VC ++目录中的Include目录中,而是添加上面的文件夹。
通过扩展,这意味着您的include指令需要为#include <image_processing/frontal_face_detector.h>
。
让我列出一个假设的例子来更好地解释。您下载了dlib-18.16.tar.bz2
并将其解压缩到c:\projects
。这将创建一个名为c:\projects\dlib-18.16
的文件夹。在VC ++目录中,您将c:\projects\dlib-18.16
添加到“包含目录”。
但是这不正确,您应该删除该目录,而是添加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
以及文件之间的类似内部链接。