一、编译QJson(避免采坑教程)

网上的教程五花八门,挨个试了一遍,总是会报各种错,自己一步步摸索,先将流程梳理如下:

一、准备工作

1、下载 CMake 工具

下载 CMake 工具,在安装界面,选择添加环境变量即可,其他无特别注意事项。

2、添加QT、和MINGW32编译工具的环境变量

本人的环境变量如下:

  • F:\Qt\Qt5.9.0\5.9\mingw53_32\bin:这一个不设置,会报出找不到 QT5 的错误
  • F:\Qt\Qt5.9.0\Tools\mingw530_32\bin:这一个是需要使用 MINGW32 编译工具

二、编译

因为纯命令行编译,测试一直在报错,所以这里我采用命令行+手工界面操作的组合方式。

1、在 qjson 文件夹下新建一个 build 文件夹

在这里插入图片描述

2、打开 cmake 程序,配置编译器,编译dll

其实实现的功能就是命令行:cmake -G "MinGW Makefiles" ..,不过因为我使用该命令,总是报错,所以这里我采用界面方式配置编译器(PS:现在不报错了,就是因为环境变量没设置才导致的报错,下面 GUI 方式就当了解):

(1)以管理员身份打开 cmake 软件,配置源码路径构建路径

在这里插入图片描述

(2)配置编译器

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述此时 build 文件夹如下:
在这里插入图片描述

(3)编译生成 dll 文件

打开命令行工具,进入 build 目录,输入 mingw32-make 命令
在这里插入图片描述
再输入 mingw32-make install 命令
在这里插入图片描述
即编译完成,生成的 dll 和 头文件默认在 C:\Program Files (x86)\qjson 文件夹下:
在这里插入图片描述
把 include 文件夹下的头文件和 dll 文件拿到项目中使用即可!

注意:生成的库文件名绝对不能改,一改就会报错!

三、使用

因为 qjson 是用 mingw32 编译器编译生成的库,所以只能项目只能在该编译器下正常运行!

(一)添加依赖

在项目下新建 include 文件夹下,将 dll头文件 复制到该文件夹下:
在这里插入图片描述在配置文件夹下添加:

#头文件目录
INCLUDEPATH += $$PWD/include
#设置添加的库文件
LIBS += -L$$PWD/include/ -llibqjson-qt5

(二)使用案例

void Widget::testJson()
{
    QJson::Parser parser;
    bool ok;
    QString json("{"
            "\"encoding\" : \"UTF-8\","
            "\"plug-ins\" : ["
            "\"python\","
            "\"c++\","
            "\"ruby\""
            "],"
            "\"indent\" : { \"length\" : 3, \"use_space\" : true }"
            "}");
    QVariantMap result = parser.parse(json.toUtf8(), &ok).toMap();
    if (!ok) {
        qFatal("An error occurred during parsing");
        exit (1);
    }
    qDebug() << "encoding:" << result["encoding"].toString();
    qDebug() << "plugins:";
    foreach (QVariant plugin, result["plug-ins"].toList()) {
        qDebug() << "\t-" << plugin.toString();
    }
    QVariantMap nestedMap = result["indent"].toMap();
    qDebug() << "length:" << nestedMap["length"].toInt();
    qDebug() << "use_space:" << nestedMap["use_space"].toBool();
}

编译无问题后,将 libqjson-qt5.dlllibqjson-qt5.dll.a 复制到编译后的目录,运行即可!

在 debug 和 release 模式下均可正常编译运行!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值