The world's most popular open source database
Cuando usted enlaza un programa para utilizar la librería cliente de MySQL, usted podría
obtener errores de referencias no definidas para los símbolos que comiencen con
mysql_, tal como los que se muestran aquí:
/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'
Debería ser capaz de resolver este problema añadiento
-Ldir_path -lmysqlclient al final de su comando de enlace, donde
dir_path representa la ruta de el directorio donde la librería cliente
está situada. Para determinar el directorio correcto, utilice este comando:
shell> mysql_config --libs
La salida de mysql_config podría indicar otras librerías que deberían ser especificadas en el comando de enlace también.
Si obtiene errores de undefined reference en las funciones
uncompress o compress, intente añadir
-lz al final de su comando de enlace e intente de nuevo.
Si usted obtiene errores undefined reference para una función
que no deberían ocurrir en su sistema, tal como connect,
compruebe la página de la función en el manual y determine qué librerías debería
añadir para el comando de enlace.
Podría obtener errores undefined reference como el siguiente por las
funciones que no existen en su sistema:
mf_format.o(.text+0x201): undefined reference to `__lxstat'
Esto normalmente significa que su librería cliente MySQL fue compilada en un sistema que no es compatible al 100% con el suyo. En este caso, debería descargar la última distribución de código fuente de MySQL y compilar usted mismo MySQL. Consulte Sección 2.8, “Instalación de MySQL usando una distribución de código fuente”.
Podría obtener errores de referencia en tiempo de ejecución cuando intenta ejecutar
un programa MySQL. Si estos errores especifican símbolos que comienzan con
mysql_ o indican que la librería cliente
mysqlclient no puede encontrarse, significa que su sistema no
puede encontrar la librería compartida libmysqlclient.so.
La corrección para esto es decirle a su sistema que busque las librerías compartidas
donde estén situadas. Utilice aquel de los siguientes métodos que sea apropiedo para
su sistema:
Añada la ruta al direcotorio donde se encuentre libmysqlclient.so
a la variable de entorno LD_LIBRARY_PATH.
Añada la ruta al directorio donde libmysqlclient.so
se encuentra a la variable de entorno LD_LIBRARY.
Copie el archivo libmysqlclient.so a algún directorio de los
que su sistema busca, como por ejemplo /lib, y actualice
la información de la librería compartido ejecutando ldconfig.
Otra manera de resolver este problema es enlazando su programa de manera estática con la
opción -static, o eleminando las librería dinámicas MySQL antes de
enlazar su código. Antes de intentar el segundo método, usted debería asegurarse
de que ningún otro programa está utilizando las librerías dinámicas.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

