2009-06-30 5 views
2

z/OS USS에서 z/lib을 컴파일하려하고 있습니다. ive는 gmake와 c89 컴파일러 (c89 표준을 준수한다고 가정)와 USS는 POSIX를 준수해야합니다.zlib (z/OS) USS

그러나 ZLIB 다음과 같은 오류 (들) 내가 점진적으로 FAR *을 찍을 때

c89 -O3 -DUSE_MMAP -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_SOURCE -c -o example.o example.c 
ERROR CCN3277 ./zlib.h:92 Syntax error: possible missing ';' or ','? 
ERROR CCN3007 ./zlib.h:92 "struct internal_state" is undefined. 
ERROR CCN3166 ./zlib.h:103 Definition of function FAR requires parentheses. 
ERROR CCN3276 ./zlib.h:103 Syntax error: possible missing '{'? 
ERROR CCN3273 ./zlib.h:124 Missing type in declaration of gz_header. 
ERROR CCN3166 ./zlib.h:126 Definition of function gz_header requires parentheses. 
ERROR CCN3276 ./zlib.h:126 Syntax error: possible missing '{'? 
WARNING CCN3137 ./zlib.h:1346 Declaration must declare at least one declarator, tag, or the members of an enumeration. 
ERROR CCN3275 ./zlib.h:1350 Unexpected text z encountered. 
ERROR CCN3282 ./zlib.h:1350 The type of the parameters must be specified in a prototype. 
ERROR CCN3275 ./example.c:95 Unexpected text file encountered. 
ERROR CCN3045 ./example.c:95 Undeclared identifier gzFile. 
ERROR CCN3046 ./example.c:96 Syntax error. 
ERROR CCN3045 ./example.c:98 Undeclared identifier file. 
ERROR CCN3019 ./example.c:523 Expecting an array or a pointer to object type. 
ERROR CCN3280 ./example.c:527 Function argument assignment between types "const char*" and "int" is not allowed. 
CCN0793(I) Compilation failed for file ./example.c. Object file not created. 
FSUM3065 The COMPILE step ended with return code 12. 
FSUM3017 Could not compile example.c. Correct the errors and try again. 
gmake: *** [example.o] Error 3 

은 (내가 생각하는 그것까지 포인터를하지만, 메신저와

struct internal_state FAR *state; /* not visible by applications */ 

에 일인가 것 같다 정말로 확실하지는 않습니다) 오류가 사라집니다. 그러나 이것이 도서관이기 때문에 이것을 제거함으로써 어떤 다른 유물이 생성 될지 확신하지 못합니다.

아무도 아이디어가 있습니까?

오래된 메인 프레임 헤드가 있습니까?

+0

이것이 바로 C/C++ 전처리기를 싫어하는 이유입니다. – Malcolm

답변

2

그것을가 컴파일 ZLIB의 이전 버전이 밝혀 USS, 1.1.4 또는 그와 비슷한 버전. 그 뒤쪽 수준이지만, 나는 그것이 최신 코드에서 FAR 포인터의 구현하기 전에 있기 때문에이 작품을 추정합니다. 그래서 필자는 ive가 작동하도록했습니다.

감사합니다.

감사합니다.

마크.

1

FAR은 C89 키워드가 아니며 Microsoft/Intelism이며 어딘가에서 # 정의됩니다. 그렇지 않다면, 아무것도 정의하지 말아야합니다.

#define FAR 

그러나 이것은 많은 문제 중 하나만 수정합니다. 필자는 라이브러리가 FAR 포인터와 같은 것을 처리하기 위해 조건부 컴파일의 일부 형식을 사용한다고 추측합니다. 플랫폼에 가장 적합한 구성을 찾기 위해 문서를 읽어야합니다.

1

xlc가 시스템 기본 컴파일러이기 때문에 xlc를 사용 하겠지만 여전히 문제가있을 수 있습니다. MVS-OE 전자 메일 목록에 가입하면 사람들이 유용합니다. 목록에 대한 정보에 대한 링크는 이렇게 메시지와 함께 [email protected] 에 이메일을 보내 지금 아래로 나타납니다 정보 MVS-OE