c++ - 如何使用 cmake 构建系统将仅标头库添加到项目中?
问题描述
我需要修改一个 C++ 项目以使用Cereal库。本项目的构建系统基于 CMake。由于 Cereal 是一个只有头文件的库并且也使用 CMake,我希望这是一个非常简单的任务。我尝试编辑CMakeLists.txt
:
include(ExternalProject)
ExternalProject_Add(cereal
GIT_REPOSITORY git@github.com:USCiLab/cereal.git
CMAKE_ARGS -DJUST_INSTALL_CEREAL=ON -DSKIP_PORTABILITY_TEST=ON -DBUILD_TESTS=OFF
PREFIX ${CMAKE_INSTALL_PREFIX})
但不知何故cmake
试图安装cereal
在/usr/local
. 我感谢任何可以为我指明正确方向的帮助。
解决方案
正确的方法是始终链接到库:
target_link_libraries(your-executable PUBLIC cereal::cereal)
由于这个库定义了一个目标,您可以直接使用它,以便将包含目录自动设置为您的目标。
推荐阅读
- html - Angular - 2:在 html 中获取不同的值并键入脚本
- javascript - 如何在JS中替换字符串公式中的整数
- node.js - 无法使用节点 js 连接嵌入式 firebird 数据库
- html - 将中心的文本框与靠近文本框的图标对齐
- python - 以 JSON 代替 pandas 数据帧的一对多连接 pandas 数据帧
- bpmn.io - 在 propertiesPanel 中添加 bpmn:Resource
- elasticsearch - elasticsearch 短语前缀搜索
- javascript - 是否使用了 javascript mvc 模式?
- python - gurobipy中的倒置指标约束
- python - 将装饰器添加到继承类的方法中?