【问题标题】:Eigen cmake requires "target_link_libraries" even though it's template-onlyEigen cmake 需要“target_link_libraries”,即使它只是模板
【发布时间】:2019-01-24 00:13:27
【问题描述】:

在 Eigen 库的 official cmake doc 中,它需要 target_link_libraries (example Eigen3::Eigen) 行。我曾尝试删除该行,但随后编译将失败并显示“未找到特征”。

这直接与另一个 StackOverflow 问题中的讨论相矛盾:Using Eigen Lib in my Cmake project?

我不明白为什么 Eigen 需要 target_link_libraries,即使它是一个仅模板库?就像上面的 StackOverflow 问题一样,我假设我只需要包含 Eigen 标头 (include_directories()),它应该可以开箱即用。它没有。

【问题讨论】:

    标签: cmake eigen


    【解决方案1】:

    啊,现在我知道发生了什么事:CMake 中有一个名为“接口库”的概念,它实际上并没有构建库二进制文件。它专为 Eigen 等纯模板库而设计。

    参考资料: - https://cmake.org/cmake/help/latest/command/add_library.html#interface-libraries - http://mariobadr.com/creating-a-header-only-library-with-cmake.html

    希望这可以帮助其他在 cmake 中苦苦挣扎的人!

    【讨论】:

      猜你喜欢
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 2018-02-16
      • 2013-09-10
      • 2014-11-20
      • 1970-01-01
      相关资源
      最近更新 更多