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

Posted

技术标签:

【中文标题】Visual Studio 和 dlib:“无法打开包含文件:\'zlib.h\':没有这样的文件或目录”【英文标题】:Visual studio and dlib: "cannot open include file: 'zlib.h': No such file or directory"Visual Studio 和 dlib:“无法打开包含文件:'zlib.h':没有这样的文件或目录” 【发布时间】:2016-08-20 06:57:14 【问题描述】:

对于我的论文,我想使用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 文件夹中。这里有没有人知道可能出了什么问题?

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

【问题讨论】:

您使用的是哪个版本的 Visual Studio。? 2013 和 2015 都不起作用。现在我只在 2013 年工作 你试过这个link。它清楚地描述了使用 Visual Studio 2013 配置 dlib。 看,如果系统无法打开zlib.h,则意味着您必须提供该文件的路径,以便它可以添加该文件。 嗨@Sharonneke95,你能告诉我什么解决方案对你有用吗?我正在尝试 VS2017 【参考方案1】:

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

需要将包含 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 时遇到了问题。

【讨论】:

【参考方案2】:

使用 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)

【讨论】:

抱歉,回答迟了。我们决定继续使用不同的代码,这就是为什么我不能再尝试这个了,但如果我没记错的话,项目中有一个 CMake。你认为那可能有错误吗? 不一定是 CMakeLists.txt 中的错误,而是在使用 CMake 配置项目时选择启用的选项。尝试在 CMake GUI 中禁用 zlib。

以上是关于Visual Studio 和 dlib:“无法打开包含文件:'zlib.h':没有这样的文件或目录”的主要内容,如果未能解决你的问题,请参考以下文章

基于windows系统中visual studio2017的dlib库详细配置安装流程

使用 Visual Studio 2015 库安装 dlib

Visual Studio 2010 中 dlib 库的使用

如何在没有 CMake 的情况下使用 Visual Studio 2013 设置 Dlib?

我想在不安装 Visual Studio 19 的情况下安装 dlib

带有 Visual Studio 的第三方库