【问题标题】: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>这行引起的

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

【问题讨论】:

    标签: c++ visual-studio visual-studio-2013 compiler-errors dlib


    【解决方案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:尝试添加绝对路径。
    猜你喜欢
    • 2014-12-07
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多