【发布时间】:2018-04-16 08:09:53
【问题描述】:
我写了一些只有头文件的库,比如:
cmake_minimum_required(VERSION 3.10)
add_library(testLib INTERFACE)
...
find_package(GSL REQUIRED)
find_package(Boost 1.32 REQUIRED)
target_link_libraries(testLib INTERFACE Boost::boost GSL::gsl GSL::gslcblas)
并写在testLibConfig.cmake文件中:
include(CMakeFindDependencyMacro)
find_dependency(GSL)
find_dependency(Boost 1.32)
include("${CMAKE_CURRENT_LIST_DIR}/testLibTargets.cmake")
但是当我尝试像这样使用它时:
find_package(testLib)
我得到错误:
目标“importTest”链接到目标“GSL::gsl”,但目标不是 成立。 IMPORTED 目标可能缺少 find_package() 调用,或者 缺少 ALIAS 目标?
以及 gslcblas 组件的类似错误消息。但是,通过将库包含为
find_package(testLib)
find_package(GSL)
错误消息消失。请注意,客户端不需要关于使用的库提升的类似知识。我做错什么了吗?
【问题讨论】: