一些背景
本来在mac上做了一个项目,现在想用我的Linux机器做同一个项目。设置文件夹依赖于:
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonParseError>
这些不包括在我为 SL5 安装的 qt-devel 中——它使用 QT v4。所以我从 Sourceforge 下载了 QJson并使用 cmake 安装。一些示例输出:
--Installing: /usr/include/qjson/parser.h
--Installing /usr/lib/libqjson.so
没关系。所以我添加到我的 .pro 中:
LIBS += -L/usr/lib/ -lqjson
INCLUDEPATH += /usr/include/qjson/
实际问题
现在我的任务是翻译我的旧settings.cpp
文件以用这种稍微新的方法解析数据。
{
"HwDescription": {
"ConnectionsName": "file://settings/connections.xml",
"ShelveId": 0,
"BeBoard": {
"Id": 10,
"connectionId": "board0",
"boardType": "GLIB"
}, // + more boring stuff
所以现在我在 QString 中有这个 json,就像我为我的旧工作方法所做的那样,然后我尝试按照给我的说明进行解析。我用过:#include <qjson/parser.h>
而且我认为我在这里不需要任何前向声明。
QJson::Parser parser;
bool ok;
QVariantMap result = parser.parse (raw_json, &ok).toMap(); //where raw_json is a QString - this is where I get an error
if (!ok)
{
qFatal("An error occured during parsing");
exit (1);
}
我得到的错误:
错误:没有匹配的函数来调用 'Qjson::Parser:parse(QString&, bool)
如果我删除包含,错误说:
QJson 没有被声明
所以它至少必须找到图书馆。关于出了什么问题的任何想法?