【问题标题】:Fatal error with jsoncpp while compiling编译时 jsoncpp 出现致命错误
【发布时间】:2016-08-20 01:41:58
【问题描述】:

我是 cpp 新手,但根据项目要求,我需要使用 rest api 并解析响应。 能够调用 api 并捕获响应,但无法使用 JSONCPP 库对其进行解析。

这些是我解析 json 所遵循的步骤:

  1. 使用此命令在 ubuntu 中安装 libjsoncpp sudo apt-get install libjsoncpp-dev
  2. 已下载 json 源文件并将 json 头文件复制到项目文件夹中
  3. 使用此命令编译 cpp gcc -o test.out test.cpp -ljson

它总是给予

fatal error: json/json.h: No such file or directory
 #include <json/json.h>
                       ^
compilation terminated.

自 2 天以来未找到任何解决方案。也试过this。 谁能告诉我哪里出错了...

【问题讨论】:

  • “已下载json源文件并将json头文件复制到项目文件夹”究竟是什么意思?

标签: c++ jsoncpp


【解决方案1】:

由于您使用的是 Ubuntu,因此我访问了他们的软件包网站并找到了您安装的软件包的文件列表:http://packages.ubuntu.com/trusty/amd64/libjsoncpp-dev/filelist

前几个文件说明了问题:

/usr/include/jsoncpp/json/autolink.h
/usr/include/jsoncpp/json/config.h
/usr/include/jsoncpp/json/features.h
/usr/include/jsoncpp/json/forwards.h
/usr/include/jsoncpp/json/json.h

由于编译器通常查找/usr/include您需要提供路径的其余部分,即:

#include <jsoncpp/json/json.h>

通过运行以下命令安装软件包后,您也可以在正在运行的系统上找到此文件:

locate json.h

或者安装包后使用dpkg命令。

当你链接你的程序时,你需要说-ljsoncpp,而不是-ljson

【讨论】:

  • 我很困惑,#include 语句他有什么要改变的
  • @AviParshan 不是#include &lt;json/json.h&gt;,而是#include &lt;jsoncpp/json/json.h&gt;
  • 您好,我在 mac 上遇到了同样的问题。虽然我安装了 jsoncpp lib 并且 cmake 命令运行正常,但是 make 命令抱怨 "jsoncpp/json/json.h" not found 但是当我将包含更改为 json/json.h 并且我的 IDE 显示该文件并且没有给出任何错误但 make 命令仍然说 @987654333 @有什么想法吗?
  • @AkilDemir:在您的磁盘中搜索json.h。它的完整路径是什么?
  • @JohnZwinck 的完整路径/usr/local/include/json/json.h
【解决方案2】:

另一种解决方案:

sudo apt-get install libjsoncpp-dev 
sudo ln -s /usr/include/jsoncpp/json/ /usr/include/json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多