【问题标题】:How can I resolve the "Could not find the required component 'libdlib'" error?如何解决“找不到所需的组件‘libdlib’”错误?
【发布时间】:2019-07-22 00:55:54
【问题描述】:

我正在尝试编译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,但错误仍然存​​在。

我错过了什么或做错了什么?

【问题讨论】:

    标签: cmake dlib


    【解决方案1】:

    首先:如果您提供您的代码和您所面临的确切错误,那么为您提供帮助会更容易。 我想,您正试图在find_package(dlib CONFIG) 的帮助下找到图书馆?!

    libdlibConfig.cmake 是一个 CMake 文件,需要由您的 dlib 安装提供。该文件已为您的 cmake 写入所有内容,以查找您的 dlib-installation 的包含路径和库路径。在它的帮助下,您的 cmake 然后设置您尝试使用的变量:dlib_INCLUDE_DIRSdlib_LIBRARIES(指向其相应的路径)。

    因此,您的cmake-call 抱怨说找不到这样的libdlibConfig.cmake,您的系统上要么没有这样的文件,要么它不在预期的目录中。在这两种方式中:您尝试使用的变量将不会被设置。或者,您的系统上可能有一个 FindDlib.cmake-File,其作用几乎相同,您可以通过 find_package(Dlib) 引用。

    如果您没有这两个文件中的任何一个,则需要自己指定包含目录和库目录的路径:

    set(dlib_LIBRARIES "<path to your libdlib.dll>")
    set(dlib_INCLUDE_DIR "<path to your dlib/include-folder>")
    find_library(LIBDLIB dlib ${dlib_LIBRARIES})
    target_include_directories(<your_target> ${dlib_INCLUDE_DIR})
    target_link_libraries(<your_target> LIBDLIB)
    

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 2020-10-20
      • 2014-09-24
      • 2012-03-02
      • 2020-07-09
      • 2018-03-27
      • 2012-09-15
      • 2018-04-22
      • 2020-10-26
      相关资源
      最近更新 更多