编译json.cpp的bug记录

本文解决了一个常见的源码编译错误:在编译Json文件时遇到的‘expected‘;’atendofmemberdeclaration’和‘expected‘)’before‘sz’错误。错误原因是cJSON.h文件中未正确识别‘size_t’类型。解决方案是调整头文件的包含顺序,将cJSON.h置于首位。

源码编译Json文件时报错:
error: expected ‘;’ at end of member declaration
void *(*malloc_fn)(size_t sz);

error: expected ‘)’ before ‘sz’
void *(*malloc_fn)(size_t sz);

原因:
cJSON.h 中提示: unknown type name ‘size_t’

解决:
在指定头文件时, 把cJSON.h 这个文件放在第一个.
如下:
g++ json.cpp -L cJSON.h cJSON.c CJsonObject.hpp CJsonObject.cpp

QT -= gui QT += sql network #testlib QMAKE_CXXFLAGS += -std=c++0x CONFIG += c++11 gnu++11 console CONFIG -= app_bundle QMAKE_RPATHDIR = /usr/arm-qt/lib/ # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS #DEFINES += QT_MESSAGELOGCONTEXT # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ dealdata.cpp \ main.cpp \ qserial.cpp \ qsocket.cpp \ sql.cpp \ src/json_parser.cc \ src/json_scanner.cc \ src/json_scanner.cpp \ src/parser.cpp \ src/parserrunnable.cpp \ src/qobjecthelper.cpp \ src/serializer.cpp \ src/serializerrunnable.cpp # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target HEADERS += \ dealdata.h \ qserial.h \ qsocket.h \ sql.h \ src/FlexLexer.h \ src/json_parser.hh \ src/json_scanner.h \ src/location.hh \ src/parser.h \ src/parser_p.h \ src/parserrunnable.h \ src/position.hh \ src/qjson_debug.h \ src/qjson_export.h \ src/qobjecthelper.h \ src/serializer.h \ src/serializerrunnable.h \ src/stack.hh .por文件
最新发布
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值