如何解决“找不到所需的组件'libdlib'”错误?

时间:2019-02-28 07:01:51

标签: cmake dlib

我正在尝试编译this ROS程序包,但出现以下错误

 Could not find a package configuration file provided by "libdlib" with any of the following names:

libdlibConfig.cmake
libdlib-config.cmake

Add the installation prefix of "libdlib" to CMAKE_PREFIX_PATH or set
"libdlib_DIR" to a directory containing one of the above files.  If
"libdlib" provides a separate development package or SDK, be sure it has
been installed.

参考SO和其他地方的其他答案,我在CMakeLists.txt中添加了以下几行

include(/home//src/dlib/dlib/cmake)
include_directories (${dlib_INCLUDE_DIRS})
target_link_libraries(room_segmentation_server ${dlib_LIBRARIES})

我还按照these的说明安装了dlib,但错误仍然存​​在。

我缺少什么或做错了什么?

1 个答案:

答案 0 :(得分:0)

首先:如果您提供代码和所面临的确切错误,则可以更轻松地为您提供帮助。 我想,您正在尝试借助String.IsNullOrWhiteSpace(vbNullString)来查找该库?!

Not String.IsNullOrWhiteSpace(data) AndAlso data <> vbNullChar 是CMake文件,您的find_package(dlib CONFIG)安装需要提供此文件。对于您的cmake,此文件已写入其中,以查找libdlibConfig.cmake安装的include-和库路径。在它的帮助下,您的cmake然后设置您要使用的变量:dlibdlib(指向其相应的路径)。

因此,您的dlib_INCLUDE_DIRS呼叫抱怨,找不到这样的dlib_LIBRARIES,或者您的系统上没有这样的文件,或者该文件不在预期的目录中。两种方式:不会设置您要使用的变量。或者,您的系统上可能有一个cmake文件,其作用几乎与libdlibConfig.cmake所引用的相同。

如果您没有这两个文件之一,则需要自行指定include-dir和library-dir的路径:

FindDlib.cmake