원인은 빌더5 버젼이 자료형을 연속적으로 표현하는 방법을 지원하지 않아서 발생한 문제 입니다.
json.h 안에 에러가 발생한 위치를 보면
typedef long long int Int64;
typedef unsigned long long int UInt64;
상기와 같이 선언된 부분이 있습니다. 64bits 정수형에 대한 타입명을 변경하는 부분인데 빌더6 부터는 64bits 정수형에 대해
자료형을 연속적으로 적는 것이 지원되어서 위의 선언에 문제가 없는 반면 빌더5는 지원이 되지 않기 때문에 에러가 납니다.
빌더5 에서 사용하기 위해서는 위의 해당 부분을 주석처리 하고 해당 코드 위 부분의 MSC_VER 에서 사용되는 형식으로
똑같이 적용시켜 놓고 사용 하시면 됩니다.
// typedef long long int Int64;
// typedef unsigned long long int UInt64;
typedef __int64 Int64;
typedef unsigned __int64 UInt64;
Patrick 님이 쓰신 글 :
: 안녕하세요!
:
: 이전에 Jsoncpp 관련 문의드렸던 사람입니다.
:
: 제가 볼랜드포럼의 한 분한테 도움을 받아 C Builder6 환경에서 Jsoncpp, curl 컴파일을 C Builder 6으로 완료하였습니다.
:
: 그러나, 같은 소스임에도 불구하고 C Builder5 버전에서는 아래와 같은 에러가 납니다.
:
: <Error List>
:
: [C++ Error] json.h(219): E2176 Too many types in declaration
: [C++ Error] json.h(220): E2176 Too many types in declaration
:
: 이 문제에 대해서 조언 및 피드백 부탁드립니다.
:
: 관련 소스 첨부 하겠습니다.
:
|