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 將不會相容。尤有甚者,即使您使用 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

解決方法:請套用以下兩個修補程式之一: