문제

Z/OS USS에서 z/lib를 컴파일하려고합니다 (메인 프레임이 맞습니다). GMAKE와 C89 컴파일러 (C89 표준을 준수한다고 가정)를 얻었고 USS는 POSIX를 준수해야합니다.

그러나 Zlib은 넘어지고있는 것 같습니다

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

다음 오류로

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

내가 멀리 떨어진 곳을 점차적으로 꺼낼 때 (나는 그것이 먼 포인터라고 생각하지만 실제로 확실하지 않음) 오류가 사라집니다. 그러나 이것이 라이브러리이기 때문에, 이것을 제거함으로써 다른 아티팩트가 어떤 유물이 생성 될 것인지 잘 모르겠습니다.

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

오래된 메인 프레임이 거기 밖으로 나가요?

도움이 되었습니까?

해결책

USS, 버전 1.1.4 또는 그에 가깝게 컴파일하는 이전 버전의 Zlib가 있습니다. 백 레벨이지만, 최신 코드에서 먼 포인터를 구현하기 전에이 효과가 있다고 가정합니다. 그래서 ATM은 그것을 작동 시켰다고 생각합니다.

모든 도움에 감사드립니다.

문안 인사

표시.

다른 팁

Far는 C89 키워드가 아니며 Microsoft/Intelism이며 어딘가에 #DEFING 일 것입니다. 그렇지 않다면, 당신은 그것을 아무것도 정의해야합니다.

#define FAR

그러나 이것은 아마도 많은 문제 중 하나만 해결할 것입니다. 라이브러리는 맨 포인터와 같은 것을 처리하기 위해 어떤 형태의 조건부 편집을 사용한다고 생각합니다. 플랫폼에 가장 적합한 구성을 찾으려면 문서를 읽어야합니다.

XLC가 시스템 기본 컴파일러이지만 여전히 문제가있을 수 있으므로 C89 대신 XLC를 사용하겠습니다. 나는 MVS-OE 이메일 목록을 구독하고 사람들은 매우 도움이됩니다. 목록에 대한 정보에 대한 링크는 지금 다운 된 것으로 보이므로 메시지와 함께 listserv@vm.marist.edu로 이메일을 보내십시오.

FWIW, IBM은 최근 빈티지 메인 프레임에서 사용할 수있는 압축 하드웨어 (소위 ZEDC)에 대한 지원을 포함하는 사전 제작 된 Zlib 버전을 제공합니다. 보다 Zenterprise 데이터 압축 용 Zlib

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top