Conecat desde C con Mysql

Hola,
Necesito acceder a una base de datos desde un programa C. Esto trabajando con Unix. No consigo conectarme. Tengo:
#include "/datos/mysql/lib/mysql.h"
int main () {
MYSQL mysql;
mysql_connect (&mysql, "host","usuario","password");
}
No me reconoce el método mysql_connect. Según el manual, este es el método para conectarse, pero no lo consigo.
Si me puede ayudar, le estaría muy agradecido.
Un saludo:
1

1 Respuesta

135.275 pts. He usado Unix desde 1988, y comence con Linux en 1993,...
En realidad tu programa no tiene nada malo, pero creo que en el momento de la compilación, no lo estas enlazando con las librerías de MySQL, deberías hacerlo con una linea similar a esta:
gcc prueba.c -o prueba -L/usr/local/lib/mysql -lmysqlclient -lnsl
ojo: usa tu propia ruta para "lib/mysql".
Creo que ese era el error, pero al compilar me da uno nuevo:
gcc correo.c -o correo -L/datos/mysql/lib -lmysqlclient -lnsl
Undefined first referenced
symbol in file
socket /datos/mysql/lib/libmysqlclient.a(libmysql.o)
setsockopt /datos/mysql/lib/libmysqlclient.a(libmysql.o)
getservbyname /datos/mysql/lib/libmysqlclient.a(libmysql.o)
floor /datos/mysql/lib/libmysqlclient.a(password.o)
getsockopt /datos/mysql/lib/libmysqlclient.a(libmysql.o)
shutdown /datos/mysql/lib/libmysqlclient.a(libmysql.o)
connect /datos/mysql/lib/libmysqlclient.a(libmysql.o)
ld: fatal: Symbol referencing errors. No output written to correo
collect2: ld returned 1 exit status
Si sabes por lo que es, te estaría muy agradecido.
Un saludo:
Debes agregar también la librería para 'socket', que son las conexiones de red, agrega esto a tu comando:
-Lsocket

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas