Visual Studio和dlib:“无法打开包含文件:'zlib.h':没有这样的文件或目录”

时间:2016-04-26 12:33:04

标签: visual-studio dlib

对于我的论文,我想使用Dlib's face_landmark_detection,但我一直遇到这些错误(对于Visual studio 2013 as well as 2015}:

"cannot open include file: 'zlib.h': No such file or directory" 

"'F77_INT': undeclared identifier". 

它会重复,所以基于这两个问题我有36个错误。

我的主管给了我一些设置项目的步骤:

  • dlib-master和dlib-master \ examples添加到VC ++目录 - >包含目录
  • 将dlib-master \ dlib \ external \ libjpeg和dlib-master \ dlib \ entropy_decoder添加到C / C ++ - >一般 - >其他包括目录
  • 将dlib-master \ dlib \ external(cblas,libjpeg,libpng和zlib)中的所有文件夹和项目添加到项目源文件夹
  • 添加dlib源文件(来自dlib-master \ dlib \ all)并将face_landmark_detection(来自dlib-master \ examples)添加到项目源文件夹中。

并且据他说,到目前为止,这已经在其他所有计算机上运行,​​但在我的笔记本电脑上它不会。我们检查了项目,但zlib.h位于项目的zlib文件夹中。这里有没有人知道可能出现的问题?

如果我没有提供足够的信息,请询问。我不知道还有什么可能需要解决这个问题。

2 个答案:

答案 0 :(得分:0)

使用CMake配置使用dlib的项目可能最简单。它避免手动设置所有这些路径。在CMake配置步骤中,您可以禁用zlib等库,而这些库是您没有/想要/需要的。这是一个适用于我的CMakeLists.txt示例:

cmake_minimum_required(VERSION 2.6)
PROJECT(DatasetClassifier CXX C)
set(dlib_DIR "" CACHE PATH "Path to dlib") # http://dlib.net/
include(${dlib_DIR}/dlib/cmake)
ADD_EXECUTABLE(DatasetClassifier DatasetClassifier.cpp)
TARGET_LINK_LIBRARIES(DatasetClassifier ${dlib_LIBRARIES})

答案 1 :(得分:0)

我刚刚遇到同样的问题并想发布我的解决方案,因为我发现了很多关于这个主题的相互矛盾的文档。

需要将包含dlib文件夹的文件夹以及dlib / external中的libpng,libjpeg和zlib文件夹添加到解决方案设置中的其他包含目录列表中。

dlib / all / source.cpp以及libpng,libjpeg和zlib的源文件也需要添加到项目中。

请注意,CBLAS应该以任何方式添加到项目中,因为它需要Fortran进行编译,并且很难从Visual Studio中编译它。

最后,确保在项目设置中添加DLIB_PNG_SUPPORT和DLIB_JPEG_SUPPORT作为预处理器定义。

我还尝试使用cmake生成的解决方案,但由于某种原因,它在png支持方面遇到了麻烦。