Frage

Ich bin versucht zu kompilieren z/lib auf z/OS USS(thats right, a mainframe).ive bekam gmake und der c89-compiler (der im vorausgesetzt wird, c89-standards-konform) und USS sein sollte POSIX-konform.

Aber zlib scheint zu sein, stolpern über

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

mit dem folgenden Fehler(s)

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

wenn ich progressiv nehmen Sie die WEIT * (ich denke, es ist ein far-Zeiger, aber ich bin mir wirklich nicht sicher) der Fehler Weg.Aber da dies ist eine Bibliothek, im nicht sicher, welche anderen Artefakte produziert werden sollen, die durch das entfernen dieses.

hat jemand irgendwelche Ideen?

alle alten mainframe-Köpfe da draußen?

War es hilfreich?

Lösung

es stellt sich heraus, es ist eine frühere version von zlib, die kompiliert auf dem USS, version 1.1.4 oder in der Nähe, dass.Seine eine Ebene zurück, aber ich nehme an, daß das funktioniert, weil es ist, vor der Umsetzung der FAR-Zeiger in den neuesten code.Also atm ich denke, ive got it to work.

vielen Dank für Ihre Hilfe.

Grüße

Mark.

Andere Tipps

WEIT ist es nicht ein C89 Schlüsselwort, es ist einem Microsoft/Intelism und ist wahrscheinlich #irgendwo definiert.Wenn nicht, müssen Sie es definieren als nichts:

#define FAR

Dies wird jedoch wahrscheinlich nur ein fix für viele Probleme.Ich würde vermuten, dass die Bibliothek verwendet eine form der bedingten Kompilierung, um Dinge zu handhaben, wie WEIT die Zeiger - Sie müssen die Dokumentation Lesen, um herauszufinden, welche Konfiguration die meisten suitabkle für Ihre platform.

Ich würde verwenden xlc statt c89 seit xlc ist Ihr system die Standard-compiler, aber Sie werden wahrscheinlich immer noch Probleme haben.Ich würde abonnieren Sie den MVS-OE-E-Mail-Liste, die Menschen sind sehr hilfsbereit.Den link zur info über die Liste erscheint nun, so senden E-Mail zu LISTSERV@VM.MARIST.EDU mit der Meldung:INFO MVS-OE

FWIW, stellt IBM eine vorgefertigte version von zlib, die bietet Unterstützung für die hardware-Komprimierung (so genannte zEDC) zur Verfügung, die auf den jüngsten-vintage-mainframes.Finden zlib für zEnterprise Data Compression

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top