如何使用 findpackage 在 cmake 中添加 dlib?
How can I add dlib in cmake with findpackage?
这是我的 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)
运行 cmake-gui 给我以下内容:
手动设置 dlib_DIR 没有帮助。我该如何解决这个问题?
UPD:尝试了其他 dlib_DIR 值但没有成功:
SET(dlib_DIR "C:/dlib-19.13/build/dlib/CMakeFiles/Export/lib/cmake/dlib")
给出同样的错误:
和设置
SET(dlib_DIR "C:/dlib-19.13/build/dlib/config")
给出另一个无意义的错误:
看起来 dlib 并不是为了用 find_package 添加它而设计的。您需要做的是将其添加为子目录:
add_subdirectory(C:/dlib-19.13 dlib_build)
并将生成的库添加到您的二进制文件中:
target_link_libraries( ${CUR_PROJECT_NAME} ${OpenCV_LIBS} ${Boost_LIBRARIES} dlib::dlib)
# ---------------------------------------------------------------------------^^^^^^^^^^
你能在顶级 CMakeLists.txt 试试这些吗?
SET(dlib_ROOT "C:/dlib-19.13/")
或
SET(dlib_DIR "C:/dlib-19.13/" CACHE STRING "")
这是我遵循的步骤,
要安装 dlib,请将 link 更改为所需版本
wget http://dlib.net/files/dlib-19.6.tar.bz2
tar xvf dlib-19.6.tar.bz2
cd dlib-19.6/
mkdir build
cd build
cmake ..
cmake --build . --config Release
sudo make install
sudo ldconfig
在你的项目中,
find_package(dlib REQUIRED)
target_link_libraries(try_convex dlib::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)
运行 cmake-gui 给我以下内容:
手动设置 dlib_DIR 没有帮助。我该如何解决这个问题?
UPD:尝试了其他 dlib_DIR 值但没有成功:
SET(dlib_DIR "C:/dlib-19.13/build/dlib/CMakeFiles/Export/lib/cmake/dlib")
给出同样的错误:
和设置
SET(dlib_DIR "C:/dlib-19.13/build/dlib/config")
给出另一个无意义的错误:
看起来 dlib 并不是为了用 find_package 添加它而设计的。您需要做的是将其添加为子目录:
add_subdirectory(C:/dlib-19.13 dlib_build)
并将生成的库添加到您的二进制文件中:
target_link_libraries( ${CUR_PROJECT_NAME} ${OpenCV_LIBS} ${Boost_LIBRARIES} dlib::dlib)
# ---------------------------------------------------------------------------^^^^^^^^^^
你能在顶级 CMakeLists.txt 试试这些吗?
SET(dlib_ROOT "C:/dlib-19.13/")
或
SET(dlib_DIR "C:/dlib-19.13/" CACHE STRING "")
这是我遵循的步骤,
要安装 dlib,请将 link 更改为所需版本
wget http://dlib.net/files/dlib-19.6.tar.bz2
tar xvf dlib-19.6.tar.bz2
cd dlib-19.6/
mkdir build
cd build
cmake ..
cmake --build . --config Release
sudo make install
sudo ldconfig
在你的项目中,
find_package(dlib REQUIRED)
target_link_libraries(try_convex dlib::dlib)