cmake - Eigen cmake 需要“target_link_libraries”,即使它只是模板
问题描述
在 Eigen 库的官方 cmake 文档中,它需要target_link_libraries (example Eigen3::Eigen)
. 我曾尝试删除该行,但随后编译将失败并显示“未找到特征”。
这直接与另一个 StackOverflow 问题中的讨论相矛盾:Using Eigen Lib in my Cmake project?
我不明白为什么 Eigen 需要target_link_libraries
,即使它是一个仅限模板的库?就像上面的 StackOverflow 问题一样,我假设我只需要包含 Eigen 标头 ( include_directories()
),它应该可以开箱即用。它没有。
解决方案
啊,现在我知道发生了什么: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 中苦苦挣扎的人!
推荐阅读
- java - 在后端(java spring boot)排序中,如何使用可分页对别名进行排序?没有父表作为前缀
- javascript - TypeError:无法读取未定义的属性“whenReady”
- kotlin - 未解决的参考:removeAt()
- c# - 如何获得所有字符串“可能性”
- node.js - 在 Vercel 上部署服务器
- spring-boot - @JmsListener 不异步接收消息
- java - 如何在Java中获取两个日期之间的月份列表
- reactjs - 使用 useEffect 向 api 端点发送 get 请求未获取数据
- image - 在flutter中将“html”类型文件转换为“io”类型文件
- facebook - Facebook 分享爬虫不显示 OG:说明