为什么导出的接口库find_dependency (GSL) 失败
Why is find_dependency(GSL) failing for exported interface library?
我写了一些仅标题库,例如:
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",但目标不是 发现。 也许导入的目标缺少 find_package(( 调用,或者 缺少别名目标?
以及 GSLCBLAS 组件的类似错误消息。但是,通过将库包含为
find_package(testLib)
find_package(GSL)
错误消息消失。请注意,客户端不需要有关所用库提升的类似知识。我做错了什么吗?
问题似乎是较早的find_package调用。通过删除find_package调用(仅使用 find_dependency 转发依赖项(,接口库的客户端不需要额外的find_package调用。我想问题是find_dependency确实是一个宏。通过首先调用find_package变量设置为已找到,并且客户端不会唤起第二个find_package调用...?
相关文章:
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 将gsl c++程序与"英特尔MKL"链接
- C++ 警告:将新创建的 gsl::owner<> 分配给非所有者
- 没有额外参数的函数的 GSL 数值积分
- 在C++中使用 GSL 最小化
- 减少使用 GSL 用于 ODE 系统的编译资源
- 使用 GSL 库制作样条曲线并使用它们进行集成
- gsl多变量数值积分
- c++的gsl函数替代方案
- 如何使用 GSL 库将雅可比矩阵引用为空指针
- 如何为GSL(GNU科学库)调整C++式随机数引擎?
- GSL+OMP:C++中的线程安全随机数生成器
- 在Windows中构建GSL(GNU科学库)以与VS2015一起使用
- 安装 mply 库时出错.致命错误:gsl/gsl_sf.h:没有这样的文件或目录
- 修改生成文件以添加 GSL 库
- 如何将 std::valarray<double> 与 gsl 集成?
- 无法将 IOKit 驱动程序与 IOHIDFamily 链接:"dependency load failed"
- 在cmakelists.txt中链接GSL
- Python 和 C++:如何将 pybind11 与包括 GSL 库在内的 Cmakelist 一起使用
- 为什么导出的接口库find_dependency (GSL) 失败