Кросс-компиляция RapidJSON не выполняется при разборе JSON

У меня проблемы с использованием RapidJSON на моей встроенной цели. Под Windows все работает как шарм.

Следующий простой тест не работает на моей цели:

#include "rapidjson/document.h"
#include "rapidjson/prettywriter.h"
#include "rapidjson/error/en.h"

using namespace rapidjson;

std::string temp = "{ \"Checksum\": 12345678912344567, \"Parameters\": [ 1, 2, 3 ] }" ;

Document json;
json.Parse( temp.c_str() );

if ( json.HasParseError() )
{
    Logger::Log( Logger::ERROR, GetParseError_En( json.GetParseError() ),
                                "Read" );
    return NULL;
}

if ( !json.IsObject() )
{
   Logger::Log( Logger::ERROR, "Problems parsing the JSON file: " + filename,
                               "Read" );
   return NULL;
}

Разбор не возвращает никакой ошибки. Если добавить ошибку в JSON, RapidJSON правильно сообщит об ошибке (также и для цели).

Получить тип с помощью json.GetType() возвращает 180 (dec), а IsInt64(), IsUint64() и IsDouble() возвращают true.

Результаты геттеров:

json.GetUint64() -> 269079258591236 
json.GetInt64()  -> 269079258591236 
json.GetDouble() -> 0

Флаги моего компилятора:

gnu_arm_4.7.4_20130913/bin/arm-none-eabi-g++.exe -DBOOST_ALL_NO_LIB -DBOOST_HAS_STDINT_H \
-DBOOST_LEXICAL_CAST_ASSUME_C_LOCALE -DBOOST_NO_STD_LOCALE -DBSPCFG_ENABLE_CPP -DMQX_ENABLE_CPP \
-DMQX_SUPPRESS_FILE_DEF -DRAPIDJSON_HAS_STDSTRING -mcpu=cortex-a5 -mfloat-abi=hard -mfpu=neon-vfpv4 \
-g -D__MQXOS__ -D__GNU__ -D__STRICT_ANSI__  -nostdinc -mthumb -mthumb-interwork -mno-unaligned-access \
-fcommon -ffreestanding -fno-builtin -ftree-vectorize -DGTF_STATIC_BUILD -fvisibility=hidden -Wall \
-Wshadow -Wno-invalid-offsetof -Wuninitialized -fno-strict-aliasing -fshort-enums -fno-exceptions \
-fno-rtti -pipe -fPIC -O3 -DNDEBUG

Целевая ОС - это система реального времени под названием MQX от Freescale (сейчас NXP).

У вас есть какие-нибудь намеки, в чем может быть проблема?

Спасибо

0 ответов

Другие вопросы по тегам