【Linux QT】添加Json-C库

前言

  在Linux应用开发中,Linux设备和服务器通信时,两者之间数据的传输通常采用JSON数据格式来作为载体,便于两者之间的数据交互。当设备端接收到服务端下发的JSON数据,设备端需要对JSON格式的数据进行解析;当设备端需要将设备的各项状态数据参数上传到服务器时,则需要各项状态数据参数打包成Json格式的数据包。故引入Json-c库来完成Json格式数据的解析和Json格式数据打包。

  1. 下载Json-c源码
    https://s3.amazonaws.com/json-c_releases/releases/index.html

  2. 选择Json-c版本
    在这里插入图片描述

  3. 解压到Ubuntu系统后,进入解压后的文件夹进行编译配置与安装。
    (1)可配置Json-c生成后的文件保存路径
    PS:如无特定路径需求,建议不配置此项,这将保持默认路径(/usr/lib)

./configure --prefix=指定Json-c编译后的文件保存路径

(2)可根据目标平台(x86平台,Arm平台)的不同,配置对应的交叉编译工具链。默认编译工具链为gcc

./configure CC=交叉编译器名称(已添加至环境变量)

PS:配置完成后,也可在生成的Makefile文件中,更改配置内容
在这里插入图片描述

在这里插入图片描述

(3)执行make进行编译

make

在这里插入图片描述
(4)执行make install完成库的安装,在这里插入图片描述
(5)完成后可在配置的路径中找到生成的头文件和库文件
在这里插入图片描述
(4)配置库链接器
由于我们在编译配置时,选择了指定的json库安装路径,并没有安装到默认路径/usr/lib下,所以需要在ld库链接器中添加Json-c库的所在路径

vim /etc/ld.so.conf      #在新的一行中加入库文件所在目录

在这里插入图片描述

  1. JSON库的使用

(1)如果是QT项目编译,在.pro项目文件中添加库路径和头文件路径
在这里插入图片描述

(2)如果是命令行编译:在编译选项中添加Json-c库的路径

gcc test.c -L 
Qt 项目中正确添加 `json.hpp` 头文件以解决 `'json.hpp' file not found` 错误,需要确保编译器能够找到该头文件的路径。以下是几种常见方式,适用于不同开发环境和构建系统的项目: ### 将 json.hpp 拷贝至项目目录并手动包含 最直接的方式是将 `nlohmann/json.hpp` 文件复制到项目的源码目录,并在代码中使用相对路径引用它。例如,若将 `json.hpp` 放置在项目根目录下的 `include/` 文件夹中,则可在源文件顶部写入: ```cpp #include "include/nlohmann/json.hpp" ``` 同时,在 `.pro` 文件中添加以下行,确保编译器能识别该路径: ```qmake INCLUDEPATH += $$PWD/include ``` 这种方式适用于小型项目或快速原型开发[^3]。 ### 使用系统安装Linux/macOS) 在 Linux 或 macOS 系统上,可以将 `json.hpp` 安装系统 include 目录,如 `/usr/local/include/`,这样可以在代码中使用标准形式的包含语句: ```cpp #include <nlohmann/json.hpp> ``` 安装步骤如下: 1. 下载 `json.hpp` 文件: ```bash wget https://github.com/nlohmann/json/releases/download/v3.11.2/json.hpp ``` 2. 移动文件到系统 include 路径: ```bash sudo mv json.hpp /usr/local/include/nlohmann/ ``` 此方法适合希望在整个系统范围内复用该的情况[^4]。 ### 配置 Visual Studio 附加包含目录(Windows) 在 Windows 平台使用 Visual Studio 编译 Qt 项目时,应将 `json.hpp` 所在目录添加到项目的“附加包含目录”中: 1. 打开项目属性页。 2. 进入 **C/C++ > 常规 > 附加包含目录**。 3. 添加 `nlohmann/json.hpp` 所在的父目录路径。 之后即可在源码中使用: ```cpp #include "nlohmann/json.hpp" ``` 这种方法避免了每次都要修改 `.pro` 文件的麻烦,适合多项目共享同一版本的情况[^5]。 ### 使用第三方管理工具(vcpkg/conan) 对于更大型或需要依赖管理的项目,建议使用 vcpkg 或 conan 等 C++ 包管理工具集成 `nlohmann/json` 。例如使用 vcpkg 安装: ```bash vcpkg install nlohmann-json ``` 然后在项目中通过 CMake 或 qmake 引入相关配置,使编译器自动识别头文件路径。此方式适合团队协作和持续集成环境[^2]。 --- ### 示例代码结构 假设 `json.hpp` 已放置于项目根目录下的 `third_party/nlohmann/` 子目录中,`.pro` 文件应包含: ```qmake INCLUDEPATH += $$PWD/third_party ``` 源文件中则可写: ```cpp #include "nlohmann/json.hpp" using json = nlohmann::json; ``` --- ### 总结与建议 - 对于简单项目,推荐将 `json.hpp` 拷贝至项目目录并调整 `INCLUDEPATH`。 -Linux/macOS 上可考虑全局安装以简化引用。 - Windows 用户可通过 Visual Studio 的附加包含目录设置引入头文件。 - 使用包管理工具可实现更高级别的依赖管理和跨平台一致性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值