Solaris 9 9/05 发行说明

标准错误

以下标准错误适用于 Solaris 9 9/05 发行版。

编译包含 dflcn.h 头文件的 UNIX 98 或 UNIX 03 应用程序失败 (6295971)

dflcn.h 头文件显示 /usr/include/sys/auxv.h 中的符号,但这些符号在 UNIX(R) 98 或 UNIX 03 中是不允许的。如果编译包含此头文件的 UNIX 98 或 UNIX 03 应用程序,编译器会产生语法错误。结果导致编译过程不能正常结束。

使用 c89 或 c99 编译器实用程序之外的其他编译器可以避免此错误。但是,编译生成的应用程序会与 UNIX 98 或 UNIX 03 不兼容。此外,如果定义了 -D_XOPEN_SOURCE 标志,即使使用 cc 编译器实用程序,编译也同样会失败。

例如,如果编译的应用程序使用了 -D_XOPEN_SOURCE=600 编译器标志,会显示以下错误消息:


"/usr/include/sys/auxv.h", line 45: syntax error before or at: "a_type unprotected"
"/usr/include/sys/auxv.h", line 45: warning: syntax requires ";" after last 
struct/union member
"/usr/include/sys/auxv.h", line 54: zero-sized struct/union
"/usr/include/sys/auxv.h", line 54: warning: syntax error: empty declaration
"/usr/include/sys/auxv.h", line 55: warning: old-style declaration or incorrect
type for: auxv_t

解决方法:应用以下修补程序之一: