Если при линковании программы
получены ошибки неразрешенных
ссылок на символы, имена которых
начинаются с 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 Раздел 2.3, «Установка исходного дистрибутива MySQL»).
Если при попытке выполнить
программу выдаются ошибки о
ненайденных символах,
начинающихся с mysql_, или о
том, что не удается найти
библиотеку mysqlclient, то это
означает, что система не может
найти динамической библиотеки
libmysqlclient.so.
Чтобы исправить это, необходимо предписать системе проводить поиск динамических библиотек в каталоге с клиентской библиотекой MySQL. Это можно сделать одним из следующих способов:
Добавить в переменную окружения
LD_LIBRARY_PATH путь к
каталогу, содержащему
libmysqlclient.so.
Добавить в переменную окружения
LD_LIBRARY путь к каталогу,
содержащему
libmysqlclient.so.
Скопировать
libmysqlclient.so в каталог,
просматриваемый системой при
поиске библиотек, таких как
/lib, и обновить
информацию о распределенных
библиотеках, выполнив
ldconfig.
Другой способ решения этой
проблемы заключается в
статическом линковании программы
с использованием -static,
или в удалении динамических
библиотек MySQL до линкования своего
кода. Во втором случае необходимо
удостовериться, что динамические
библиотеки не используются
другими программами!
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
