QtCreator动态编译jsoncpp完美支持x86和arm平台

如果是做嵌入式开发。 在Qt下支持JSon最好的办法,可能不是采用qjson这个库。QJson这个库的实例只提供了x86环境下的编译方法。

Installing QJson
--------------

QJson requires:
- Qt 4.0 or greater
- cmake 2.6 or greater

For Unix/Linux/Mac:

  mkdir build
  cd build
  cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ ..
  make
  make install
  /sbin/ldconfig, if necessary

Please report problems to:
  https://lists.sourceforge.net/mailman/listinfo/qjson-devel

按照上面的办法,的确10分钟就可以搞定x86环境的Linux 程序了。但是,如果要把这个库移植到arm环境下,笔者花了好几个小时都没有任何进展。相信很多朋友也有类似的感觉。

 

经过实验,终于找到一个非常简单的办法了。可以很好的把JSon和QtCreator集成在一起了。

 

第1步:下载 jsoncpp-src-0.5.0.tar.gz 这个库文件。

    下载地址:http://nchc.dl.sourceforge.net/project/jsoncpp/jsoncpp/0.5.0/jsoncpp-src-0.5.0.tar.gz

    解压后如图:

不要被这一堆文件吓到哦。

 

第2步:把我们要的东西从代码堆里整理出来。

    (1) 随便找个地方建一个空文件夹叫json

  (2)将include\json里面所有文件复制到 刚刚新建的json文件夹里(共8个文件,全部是.h的头文件)

   (3)将src/lib_json里面的所有文件全部复制到json文件里,共8个文件

 

通过复制这些文件,就组成了我们所要的JSON库的全部源代码了。完整的文件清单见下面:

   第3步: 打开QtCreator集成开发环境,新建一个新项目。

 

然后把我们刚刚准备好的JSON库,复制到你新建项目的同一目录下。

 

最后回到QtCreator开发环境,鼠标右键点击“添加现有文件”

打开JSON目录,选中全部文件。

点击“打开”。

至此JSON库的所有代码添加完毕。

对比哈,你的代码结构,和我一致吗? 如果一致,恭喜你!

 

第4步:编辑测试代码

在可视化界面上,添加一个“按钮”建立好信号槽。

 

按钮代码如下:

void Widget::on_btnTestJson_clicked()
{
    using namespace std;
    std::string strValue = "{\"学号\":\"20120207001\",\"姓名\":\"张无忌\",\"性别\":\"男\"}";
    Json::Reader reader;
    Json::Value value;
    if (reader.parse(strValue, value))
     {
        std::string out = value["学号"].asString();
        std::cout << out << std::endl;

        out = value["姓名"].asString();
        std::cout << out << std::endl;

        out = value["性别"].asString();
        std::cout << out << std::endl;
     }

}

 

运行效果如下:


更多JSON-CPP库的用法,请参考 json-cpp 的使用手册。

 

arm开发环境编译测试:

(1)首先检查你的arm环境和我的是否一致。

 

(2)切换工程编译模式

 

选择 Embed 4.5 Release 嵌入式开发环境编译器

(3)重新构建工程文件

 

重新构建完成。点击编译即可。

将编译好的程序文件copy到arm开发板上就可以运行了。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值