aws / aws/aws-sdk-cpp

CJSON_AS4CPP incompatable with original cJSON

Aperta
#1,829 15 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug Cmake p2
Lingua principale
C++
Stelle
2.2k
Fork
1.2k
Merge medio
4g 11h
PR unite (30g)
13

Descrizione

I had recently upgraded from aws-sdk-cpp 1.9.96 to 1.9.160, and in this update, the cJSON.h has been customized to redefine many functions to use the CJSON_AS4CPP convention.

The previous implementation looks like this:
https://github.com/aws/aws-sdk-cpp/blob/b7ad1b3e405ec730f1247f049bd700e7a3666622/aws-cpp-sdk-core/include/aws/core/external/cjson/cJSON.h

The current implementation looks like this:
https://github.com/aws/aws-sdk-cpp/blob/main/aws-cpp-sdk-core/include/aws/core/external/cjson/cJSON.h

For projects that are using cJSON.h as well as linking aws-sdk-cpp, this is a breaking change as the structure of cJSON becomes redefined because the header guards used by the original library are different.

To reproduce this issue, simply use the original library within an application that is also using the aws-sdk-cpp.
https://github.com/DaveGamble/cJSON

To avoid this issue, it would be ideal if the typedef struct cJSON within the aws-cpp-sdk was renamed to something like cJSON_AS4CPP.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Confronta aws-cpp-sdk-core/include/aws/core/external/cjson/cJSON.h nelle revisioni precedente e attuale collegate con l’header originale di DaveGamble/cJSON. Riproduci il conflitto in un’applicazione che includa il cJSON originale e colleghi aws-sdk-cpp; il lavoro è completato quando entrambe le librerie possono coesistere senza che la struttura e le funzioni di cJSON vengano ridefinite.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c, cpp
Ambito
developer-experience
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.