Dlib 错误:错误 C1083:无法打开包含文件:'type_safe_union/type_safe_union_kernel.h'

Posted

技术标签:

【中文标题】Dlib 错误:错误 C1083:无法打开包含文件:\'type_safe_union/type_safe_union_kernel.h\'【英文标题】:Dlib Error: error C1083: Cannot open include file:'type_safe_union/type_safe_union_kernel.h'Dlib 错误:错误 C1083:无法打开包含文件:'type_safe_union/type_safe_union_kernel.h' 【发布时间】:2015-11-08 01:31:59 【问题描述】:

我想在 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>这行引起的

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

【问题讨论】:

【参考方案1】:

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

通过扩展,这意味着您的 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 以及文件之间的类似内部链接。

【讨论】:

我这样做了,但情况变得更糟。现在,它也找不到`#include `或`#include `。 @user3504976:扩展为包含真实文件夹以阐明我的意思。 您的建议很有道理,我按照您的指示进行操作,但它不起作用。可能,该错误是由其他原因引起的。添加 ...\dlib-18.16\dlib 以包含目录是在 Visual Studio 中使用 Dlib 的唯一必需步骤吗? @user3504976:尝试添加绝对路径。

以上是关于Dlib 错误:错误 C1083:无法打开包含文件:'type_safe_union/type_safe_union_kernel.h'的主要内容,如果未能解决你的问题,请参考以下文章

致命错误 C1083:无法打开包含文件:“openssl/opensslv.h”

错误 C1083:无法打开包含文件:'crtdbg.h':没有这样的文件或目录

“错误 C1083:无法打开包含文件”但我有包含文件的路径

无法在 Windows 中安装 pycocotools:致命错误 C1083:无法打开包含文件:'io.h':没有此类文件或目录错误:

VC6:致命错误 C1083:无法打开包含文件:“stdint.h”

错误:C1083:无法打开包含文件:'boost/asio.hpp':没有这样的文件或目录