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 將不會相容。尤有甚者,即使您使用 cc 編譯器公用程式,若定義了 -D_XOPEN_SOURCE 旗標,編譯作業也會失敗。
例如,如果您編譯的是使用 -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 系統:修補程式 ID 112963-23
若為 x86 系統:修補程式 ID 113986-19