На Solaris 2.7 и 2.8 можно нормально использовать бинарные файлы для Solaris 2.6. Большинство вопросов по работе с Solaris 2.6 относятся также и к Solaris 2.7 и 2.8.
Необходимо отметить, что MySQL версии 3.23.4 и последующих может автоматически определять новые версии Solaris и избегать описанных ниже проблем!
В Solaris 2.7/2.8 имеются некоторые ошибки во включаемых файлах. При использовании 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
.Удалить строку
#define HAVE_TERM
изconfig.h
и запуститьmake
повторно.
Если редактор связей не может обнаружить -lz
при линковании вашей
клиентской программы, то проблема, возможно, заключается в том, что файл
libz.so
установлен в /usr/local/lib
. Данную проблему можно решить любым из
приведенных выше способов:
Добавить
/usr/local/lib
кLD_LIBRARY_PATH
.Создать ссылку на
libz.so
из/lib
.Если используется Solaris 8, можно установить необязательную библиотеку zlib с CD-диска с дистрибутивом Solaris 8.
Конфигурировать MySQL с опцией
--with-named-z-libs=no
.