首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >z/OS USS上的zlib

z/OS USS上的zlib
EN

Stack Overflow用户
提问于 2009-06-30 08:29:47
回答 4查看 2.1K关注 0票数 2

我正在尝试在z/OS USS(也就是大型机)上编译z/lib。我已经有了gmake和c89编译器(我假设它们是兼容c89标准的),而且USS应该是兼容POSIX的。

但是zlib似乎有点问题

代码语言:javascript
复制
struct internal_state FAR *state; /* not visible by applications */

出现以下错误

代码语言:javascript
复制
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

当我逐步删除FAR *(我认为它是一个远指针,但我真的不太确定)时,错误就消失了。但由于这是一个库,我不确定删除它会产生哪些其他工件。

有谁有什么想法吗?

外面有没有旧的大型机?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-07-06 07:09:03

原来有一个以前版本的zlib可以在USS上编译,版本为1.1.4或更接近该版本。这是一个后级,但我认为这是可行的,因为它是在最新代码中的远指针实现之前。所以我想我得到了它的工作。

谢谢你的帮助。

问候

马克。

票数 3
EN

Stack Overflow用户

发布于 2009-06-30 08:35:45

FAR不是一个C89关键字,它是微软/英特尔的一个关键字,并且可能在某个地方定义了#。如果不是,则需要将其定义为nothing:

代码语言:javascript
复制
#define FAR

然而,这可能只解决了许多问题中的一个。我猜这个库使用了某种形式的条件编译来处理诸如远指针之类的事情--你需要阅读文档来找出哪种配置最适合你的平台。

票数 1
EN

Stack Overflow用户

发布于 2009-06-30 12:19:47

我会使用xlc而不是c89,因为xlc是您的系统默认编译器,但是您可能仍然会遇到问题。我订阅了MVS-OE电子邮件列表,上面的人非常有帮助。指向列表信息的链接现在似乎已关闭,因此请向LISTSERV@VM.MARIST.EDU发送电子邮件,并显示以下消息: info MVS-OE

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1062442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档