如何在Linux上的C ++程序中使用共享库(在本例中为JsonCpp)?

我是一个新的C ++程序员,我正在使用C ++自己完成我的第一个程序。 我决定使用JSON来存储一些我将要使用的数据,并且我find了一个库来处理JSON, JsonCpp 。

我已经使用我的Linux系统的软件包pipe理器安装了这个库,在我的C ++代码中,我使用了我的源代码文件

#include <json> 

并使用g ++编译它,它是-ljson和-L / usr / lib选项(libjson.so位于/usr/lib )。

但是,由库提供的对象Json :: Value的第一个用法给出了“Json没有声明”的编译错误。 我确定我的错误是简单的,所以有人可以解释我做错了什么? 我没有提到如何使用共享库,所以我不得不谷歌find这么多。

编辑:g ++与-E选项给出这个错误:

json:没有这样的文件或目录。

我检查了JsonCPP的文件列表:

 include/json/autolink.h [code] include/json/config.h [code] include/json/features.h [code] include/json/forwards.h [code] include/json/json.h [code] include/json/reader.h [code] include/json/value.h [code] include/json/writer.h [code] 

如果头文件安装在/usr/include请尝试#include <json/json.h> 。 如果他们安装在别的地方,请用-I提到这条路

 g++ -I/my/lib/include -L/my/lib/lib -lmylib mysource.cpp 

你也告诉g ++通过-I在哪里找到头文件 – 这将是我对这个问题的猜测。

这个错误几乎肯定意味着你没有在实际的源文件中获取错误的#include

使用

  g++ -E [whatever other options] 

看到CPP输出将是一种方法来检查,看看你实际上包括了什么。

如果你真的粘贴错误信息可能会有所帮助; 你的评论暗示了#include的一个错误,但是你的问题提示了其他的东西。