【问题标题】:How to include jsoncpp library into project on unix?如何将 jsoncpp 库包含到 unix 上的项目中?
【发布时间】:2020-05-17 12:14:12
【问题描述】:

我要包含的库是jsoncpp。我在这方面遇到了严重的麻烦。我为此库使用了home-brew 安装,即brew install jsoncppbrew install 是linux 的unix 版本sudo-apt get)。通常homebrew 会在我的路径中安装东西,所以我可以使用它。我要离开这个example 这里。

#include <json/json.h>

返回错误10: fatal error: 'json/value.h' file not found

我正在使用 cmake,因为 CLion 会自动设置它。现在它是非常基本的:

#CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
project(Read_JSON)

set(CMAKE_CXX_STANDARD 17)

add_executable(Read_JSON main.cpp)

但是,由于某种原因,无法找到 jsoncpp。如何在我的项目中包含这个库?

【问题讨论】:

  • jsoncpp 找不到”是什么意思?是否有特定的错误信息? CMake错误?编译错误?链接器错误?请将错误日志添加到您的问题帖子中。
  • 我要离开这个 stackoverflow.com/questions/32205981/…> 这里。我在运行时得到这个:fatal error: 'json/value.h' file not found
  • 尝试brew info jsoncpp 看看它的安装位置。然后,根据 安装位置,您可能需要修改 CMake 以包含 target_include_directories() 用于 jsoncpp 包含目录和 target_link_libraries(),以便您的应用程序可以找到 jsoncpp 库。
  • @squareskittles 我最终弄清楚了cmake 的构建,所以我不再依赖brew。那么是的,使用了target_include_directories()target_link_libraries()。但是,我最终使用的项目只需要一个 cmake 目录。所以这看起来像list(APPEND CMAKE_MODULE_PATH path/to/cmake)

标签: c++ cmake homebrew static-libraries jsoncpp


【解决方案1】:

您可以在 CMake 中使用 FetchContent 功能。 Jsoncpp 可通过 GitHub 上的 git 存储库获得

这是我使用 googletest 制作的示例: https://github.com/adamvm/hello/blob/master/CMakeLists.txt

您只需要替换正确的地址和名称

【讨论】:

  • 这种方法是不是每次都需要联网,第一次还是完全不需要?
  • 这里有两个控制选项可以回答您的问题:“FETCHCONTENT_FULLY_DISCONNECTED”和“FETCHCONTENT_UPDATES_DISCONNECTED”。您可以在 [link] cmake.org/cmake/help/v3.14/module/FetchContent.html 下查看此模块的所有功能
猜你喜欢
  • 1970-01-01
  • 2013-06-06
  • 2018-11-19
  • 2012-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多