以下标准错误适用于 Solaris 9 9/05 发行版。
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 |
解决方法:应用以下修补程序之一:
对于基于 SPARC 的系统:Patch ID 112963-23
对基于 x86 的系统:Patch ID 113986-19