MySQL.RU .:. Одобрено лучшими российскими программистами

Справочное руководство по MySQL

2.6.3.1 Примечания к Solaris 2.7/2.8

2.6.3.1 Примечания к Solaris 2.7/2.8

На 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.