Mysql con error de C ++: referencia indefinida a mysql_init

#include <stdlib.h>
#include <mysql.h>

#include <my_global.h>


int main (int argc, char *argv[])
{

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;

char *server = "127.0.0.1";
char *user = "root";
char *password = "1386";
char *database = "OurDB";

conn = mysql_init(NULL);

/* Connect to database */
if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0))
{
    fprintf(stderr, "%s\n", mysql_error(conn));
    exit(0);
}

  return 0;
}

y obtengo un error del enlazador en los bloques de código:

undefined reference to mysql_init

solía mysql_config --libs en la opción del enlazador y mysql_config --cflags en la opción del compilador.

Leí en alguna parte que debería agregar algunas bibliotecas como libmysql.lib, pero no puedo encontrar este archivo en mi PC (estoy usando Ubuntu 11.04 de 64 bits).

preguntado el 10 de marzo de 12 a las 10:03

libmysql.lib es para Windows. Deberías buscar el tipo linux/ubuntu. -

y ¿qué debo hacer con Ubuntu? -

3 Respuestas

Esto es solo para entornos Linux:

En "Opciones de compilación del proyecto" > Pestaña "Configuración del vinculador" > En "Otras opciones del vinculador" añadir -lmysqlclient

enter image description here

También necesitará agregar mysql-conector-c-6.1.3-linux-glibc2.5-x86_64/include/ in "Buscar directorios" > "Compilador"

enter image description here

También necesitará agregar mysql-conector-c-6.1.3-linux-glibc2.5-x86_64/lib/ in "Buscar directorios" > "enlazador"

enter image description here

Para ventanas:

-lmysql

La biblioteca de MySQL Connector se puede encontrar aquí: http://dev.mysql.com/downloads/connector/c/

contestado el 15 de mayo de 14 a las 21:05

Después de probar muchas otras soluciones, esta es la única que funcionó para mí. - user124384

debe agregar mysqlclient a link libraries, No a other linker options, es simplemente más portátil. code::blocks cambiará automáticamente -l a lo que admita el compilador al cambiar de compilador :p - Hanshenrik

compila tu aplicación con el siguiente comando

gcc -o test  -L/usr/lib/mysql -lmysqlclient test.c

respondido 10 mar '12, 11:03

Configuración -> Compilador y depurador -> Directorios de búsqueda -> Enlazador y luego Agregar e insertar /usr/lib/mysql/

respondido 11 mar '12, 06:03

¿Dónde está "Configuración"? Hay un menú desplegable llamado "Configuración". Si eso es a lo que se refería, no existe la opción "Compilador y depurador" en ese menú desplegable (al menos, ya). Agregué "/usr/lib/mysql" a Compilador> Directorios de búsqueda> Enlazador> Agregar, pero eso no solucionó el problema. - user124384

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.