编译时 jsoncpp 出现致命错误

Nev*_*vin 7 c++ jsoncpp

我是 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.
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*nck 8

由于您使用的是 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
Run Code Online (Sandbox Code Playgroud)

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

#include <jsoncpp/json/json.h>
Run Code Online (Sandbox Code Playgroud)

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

locate json.h
Run Code Online (Sandbox Code Playgroud)

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

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


pet*_*ang 5

另一个解决方案:

sudo apt-get install libjsoncpp-dev 
sudo ln -s /usr/include/jsoncpp/json/ /usr/include/json
Run Code Online (Sandbox Code Playgroud)