如何使用findpackage在cmake中添加dlib?

Ste*_*nko 5 cmake cmake-gui dlib

这是我的cmakelists.txt:

project( WolframMachine )                                    
cmake_minimum_required(VERSION 3.1)
set (CMAKE_CXX_STANDARD 11)
set(CMAKE_SUPPRESS_REGENERATION true)
include(ExternalProject)
set(Boost_INCLUDE_DIR "C:/boost_1_66_0")
set(Boost_LIBRARY_DIR "C:/boost_1_66_0/lib64-msvc-14.0")
SET("OpenCV_DIR" "C:/opencv-3.4.1/build")
SET(dlib_DIR "C:/dlib-19.13/")  # <============ DLIB
find_package( OpenCV COMPONENTS core imgproc highgui aruco optflow plot REQUIRED )
find_package(dlib REQUIRED)  # <============ DLIB
add_subdirectory(dlibtest)
Run Code Online (Sandbox Code Playgroud)

跑cmake-gui给了我以下内容:

在此输入图像描述

手动设置dlib_DIR没有帮助.我怎样才能解决这个问题?

UPD:尝试了其他dlib_DIR值但没有成功:

SET(dlib_DIR "C:/dlib-19.13/build/dlib/CMakeFiles/Export/lib/cmake/dlib")
Run Code Online (Sandbox Code Playgroud)

给出同样的错误:

在此输入图像描述

和设置

SET(dlib_DIR "C:/dlib-19.13/build/dlib/config")
Run Code Online (Sandbox Code Playgroud)

给出另一个无意义的错误:

在此输入图像描述

Ste*_*nko 1

看起来 dlib 的设计目的并不是将其与 find_package 一起添加。您要做的是将其添加为子目录:

add_subdirectory(C:/dlib-19.13 dlib_build)
Run Code Online (Sandbox Code Playgroud)

并将生成的库添加到您的二进制文件中:

target_link_libraries( ${CUR_PROJECT_NAME} ${OpenCV_LIBS} ${Boost_LIBRARIES} dlib::dlib)
# ---------------------------------------------------------------------------^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)