一般情况,可以在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。