首页 > 解决方案 > 如何使用 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. 我感谢任何可以为我指明正确方向的帮助。

标签: c++installationcmakecerealheader-only

解决方案


正确的方法是始终链接到库:

target_link_libraries(your-executable PUBLIC cereal::cereal)

由于这个库定义了一个目标,您可以直接使用它,以便将包含目录自动设置为您的目标。


推荐阅读