首页
学习
活动
专区
圈层
工具
发布

cmake:VS2015和GCC编译cJSON

cJSON是基于ANSI C的跨平台JSON解析开源库,在嵌入式应用中使用比较广泛, cJSON支持CMAKE编译,本文以脚本形式提供了使用CMAKE基于VS2015/Windows以及GCC/MinGW...要求cJSON源码文件夹与msvc_build.bat脚本在同一级文件夹 执行以下脚本会编译出cJSON动态库、静态库,以及Debug和Release版本并安装到 release\cJSON_windows_vc_x86..._64 文件夹下 :: 基于 Windows Visual Studio 2015 的 cJSON 编译脚本 :: 可选参数: :: /S - 编译单元测试 :: /U...cJSON源码文件夹与gnu_build.sh脚本在同一级文件夹 执行以下脚本同会编译出cJSOn动态库、静态库,并安装到release/cJSON-$machine 文件夹下 如果未指定环境变量BUILD_TYPE.../bin/bash # cJSON 编译脚本(支持交叉编译) # Optional Command Arguments: # ONLYBUILD 不执行 cmake 创建工程只编译版本 #

1.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【漏洞通报】cJSON 越界访问漏洞

    漏洞情况近期,火山信安实验室监测发现,,广泛使用的轻量级C语言JSON解析库cJSON存在高危漏洞(编号CVE-2025-57052,CVSS评分9.8)。...该漏洞源于cJSON_Utils.c文件中的decode_array_index_from_pointer函数,攻击者可构造畸形JSON指针绕过数组边界检查,导致内存越界访问、段错误、权限提升或拒绝服务攻击...这种越界行为可能直接导致服务崩溃(段错误),或在特定场景下允许攻击者读取或篡改预期范围外的内存数据,实现权限提升或敏感信息泄露;更进一步,攻击者还可利用cJSON与标准atoi函数在解析逻辑上的差异,绕过应用层预设的安全检查机制...0x02影响范围所有使用cJSON解析JSON指针的软件均可能受影响0x03修复方案代码修正,确保指针字符串中的每个字符在被解析为数组索引前均经过正确验证,避免非数字字符被误解析立即升级到cJSON官方发布的最新安全版本对用户输入的

    37110

    cJSON使用(一)

    目录 cJSON使用(一) cJSON使用(二) cJSON介绍 cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。...; cJSON主要API API 说明 cJSON_Version() 获得cJSON的版本 cJSON_InitHooks() 初始化cJSON_Hooks结构体 cJSON_Parse() 将字符串解析成...cJSON结构体 cJSON_ParseWithOpts() 使用一些配置解析字符串 cJSON_Print() 将cJSON结构体转换成格式化的字符串 cJSON_PrintUnformatted()...将cJSON结构体转换成未格式化的字符串 cJSON_PrintBuffered() 将cJSON结构体使用buffer的字符串,格式化可选 cJSON_Delete() 删除cJSON结构体 cJSON_GetArraySize...cJSON_IsArray() 类型判断 cJSON_IsObject() 类型判断 cJSON_IsRaw() 类型判断 cJSON_free() cJSON的free函数,调用free函数 使用例子

    3K11

    cJSON,c语言的JSON库!

    cJSON是用ANSI C (C89)编写的,以支持尽可能多的平台和编译器。 CMake 使用CMake, cJSON支持完整的构建系统。通过这种方式,您可以获得最多的功能。...您可以使用makefile来构建cJSON: 在带有源代码的目录中运行这个命令,它将自动编译静态和共享库以及一个小测试程序(不是完整的测试套件)。...C StandardC标准 cJSON是用ANSI C(或C89, C90)编写的。如果编译器或C库不遵循这个标准,就不能保证正确的行为。...注意:ANSI C不是c++,所以它不应该用c++编译器来编译。不过,您可以使用C编译器编译它,并将它与您的c++代码链接起来。虽然使用c++编译器进行编译可能有效,但不能保证正确的行为。...为了防止这种情况,cJSON将深度限制为CJSON_NESTING_LIMIT,默认值为1000,但是可以在编译时更改。

    5.5K10

    cJSON的使用方法

    cJSON,目前来说,就只有两个文件,一个cJSON.c 一个cJSON.h文件。使用的时候,自己创建好一个main.c文件后,将头文件include进去。...如果是在linux pc上,请使用以下命令进行编译: gcc *.c cJSON.c -lm 记得编译时末尾链接libm库。...二.JSON结构体 熟悉使用cJSON库函数可从cJSON结构体入手,cJSON结构体如下所示: typedef struct cJSON { struct cJSON *next,*prev;...cJSON作为Json格式的解析库,其主要功能无非就是构建和解析Json格式了,用途就是一端将要发送的数据已cjson形式封装,然后发送,另一端收到此数据后,还是按cjson形式解析,就得到想要的数据了...= cJSON_CreateArray()); cJSON_AddItemToArray(js_body, js_list = cJSON_CreateObject()); cJSON_AddStringToObject

    2.4K10
    领券