# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • A Проблемы и распространенные ошибки
    • A.3 Вопросы, связанные с инсталляцией
      • A.3.1 Проблемы при линковании с клиентской библиотекой MySQL
      • A.3.2 Запуск MySQL от обычного пользователем
      • A.3.3 Проблемы с правами доступа к файлам

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

A.3.1 Проблемы при линковании с клиентской библиотекой MySQL

Если при линковании программы получены ошибки неразрешенных ссылок на символы, имена которых начинаются с mysql_, подобные следующим:

/tmp/ccFKsdPa.o: In function `main':
/tmp/ccFKsdPa.o(.text+0xb): undefined reference to `mysql_init'
/tmp/ccFKsdPa.o(.text+0x31): undefined reference to `mysql_real_connect'
/tmp/ccFKsdPa.o(.text+0x57): undefined reference to `mysql_real_connect'
/tmp/ccFKsdPa.o(.text+0x69): undefined reference to `mysql_error'
/tmp/ccFKsdPa.o(.text+0x9a): undefined reference to `mysql_close'

то их можно устранить, добавив -Lpath-to-the-mysql-library -lmysqlclient в самом конце используемой команды линкования.

Если выдаются ошибки undefined reference для функции uncompress или compress, добавьте в самом конце команды линкования -lz и повторите попытку!

Если получены ошибки undefined reference для функций, которые должны присутствовать в системе, таких как connect, то сверьтесь по странице руководства для данной функции, какие библиотеки необходимо добавить в команде линкования!

Получение ошибок undefined reference для функций, отсутствующих в используемой системе, наподобие следующего:

mf_format.o(.text+0x201): undefined reference to `__lxstat'

обычно означает, что библиотека скомпилирована в системе, которая не на 100% совместима с системой пользователя. В этом случае необходимо загрузить последнюю поставку с исходными текстами MySQL и откомпилировать библиотеку самостоятельно (see section 2.3 Установка исходного дистрибутива MySQL).

Если при попытке выполнить программу выдаются ошибки о ненайденных символах, начинающихся с mysql_, или о том, что не удается найти библиотеку mysqlclient, то это означает, что система не может найти динамической библиотеки libmysqlclient.so.

Чтобы исправить это, необходимо предписать системе проводить поиск динамических библиотек в каталоге с клиентской библиотекой MySQL. Это можно сделать одним из следующих способов:

  • Добавить в переменную окружения LD_LIBRARY_PATH путь к каталогу, содержащему libmysqlclient.so.
  • Добавить в переменную окружения LD_LIBRARY путь к каталогу, содержащему libmysqlclient.so.
  • Скопировать libmysqlclient.so в каталог, просматриваемый системой при поиске библиотек, таких как `/lib', и обновить информацию о распределенных библиотеках, выполнив ldconfig.

Другой способ решения этой проблемы заключается в статическом линковании программы с использованием -static, или в удалении динамических библиотек MySQL до линкования своего кода. Во втором случае необходимо удостовериться, что динамические библиотеки не используются другими программами!

User Comments

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.