一般情況,可以在Solaris 2.7和2.8中使用Solaris 2.6二進制。大多數Solaris 2.6發布也適用Solaris 2.7和2.8。
MySQL應當能夠自動檢測到新的Solaris版本并解決下面的問題。
Solaris 2.7/2.8的include文件中有一些缺陷。當使用gcc時你會看見下面的錯誤:
/usr/include/widec.h:42: warning: `getwc' redefined
/usr/include/wchar.h:326: warning: this is the location of the previous
definition
如果出現該問題,修復的辦法是將/usr/include/widec.h復制到.../lib/gcc-lib/os/gcc-version/include,并將41行從:
#if !defined(lint) && !defined(__lint)
更改為:
#if !defined(lint) && !defined(__lint) && !defined(getwc)
另外,可以直接編輯/usr/include/widec.h。用任何一種方法修復后,應當刪掉config.cache并再次運行configure。
如果運行make時遇到下面的錯誤,這是因為configure不能檢測到curses.h文件(可能是因為/usr/include/widec.h中的錯誤):
In file included from mysql.cc:50:
/usr/include/term.h:1060: syntax error before `,'
/usr/include/term.h:1081: syntax error before `;'
可以用下面任何一種方法解決該問題:
· 用CFLAGS=-DHAVE_CURSES_H CXXFLAGS=-DHAVE_CURSES_H ./configure配置。
· 根據前面的討論編輯/usr/include/widec.h并重新configure。
· 刪掉config.h文件中的#define HAVE_TERM行并重新運行make。
如果鏈接客戶端程序時連接器找不到-lz,問題可能是libz.so文件安裝到了/usr/local/lib。可以用下面任何一種方法解決該問題:
· 向LD_LIBRARY_PATH增加/usr/local/lib。
· 增加到libz.so from /lib的連接。
· 如果使用Solaris 8,可以安裝Solaris 8 CD分發版中的可選項zlib。
· 構建MySQL時用--with-named-z-libs=no選項運行configure。