Establecer comunicacion con Mysql desde C

Iniciado por rod00x3, 7 Enero 2013, 22:31 PM

0 Miembros y 1 Visitante están viendo este tema.

rod00x3

Hola en internet encuentras miles de ejemplos pero en la practica parece no funcionar ninguno. uno de los mas completos que encontre fue http://anaturb.net/MySQL/mysql_c.htm, pero el problema es al copilar, trato de copilar con gcc, y me aparece el error siguiente:

ser4.c:(.text+0x46): undefined reference to `mysql_init'
ser4.c:(.text+0x92): undefined reference to `mysql_real_connect'

Que puedo hacer para evitar esto??
tengo ubuntu

BlackZeroX

#1
¿Enlazaste la librería?
http://blog.desdelinux.net/acceder-a-mysql-usando-c/

Si usas Windows o algún otro S.O. Ignora que sea la liga en una plataforma LINUX ya que es el mismo proceso (usando un poco de LÓGICA se pueden transpasar los pasos a windows).

SI no das una se soluciona compilando:


gcc -o nombre -lmysqlclient archivo.c


Más info: http://www.ubuntu-es.org/node/92799#.UOt_62-qmKY

Dulces Lunas!¡.
The Dark Shadow is my passion.

rod00x3

Antes que nada gracias por tu aportacion me dio mucho mas esperanzas de que esto quede, pero aun sigo sin lograrlo, ahora siguiendo el enlace que me diste, todo parece bien pero a la hora de compilar no me genera el ejecutable. despues de la linea de compilacion


gcc -o Consulta $(mysql_config --cflags) Consulta.c $(mysql_config -–libs)
en mi caso:

gcc -o ser4 $(mysql_config --cflags) ser4.c $(mysql_config -.libs)
donde ser4.c es mi programa, y esta en la carpeta donde compilo, me devuelve el siguiente texto sin ningun mensaje de error:

gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
Copyright (C) 2006 Free Software Foundation, Inc.
Esto es software libre; vea el código para las condiciones de copia.  NO hay
garantía; ni siquiera para MERCANTIBILIDAD o IDONEIDAD PARA UN PROPÃSITO EN
PARTICULAR

y luego trato de ejecutar ./ser4

y me devuelve :

-bash: ./ser4: No existe el fichero ó directorio

ahora que estoy haciendo mal??

BlackZeroX

 - Antes de hacer nada VERIFICA que se haya compilado...

Algunas acotaciones:
- Si ya te compilo y estas bajo una distribución de linux, otorga-le los permisos de ejecución al archivo (obviamente para poderlo ejecutar debes desplazarte hasta el directorio donde se encuentra el archivo compilado con el comando "cd").

Dulces Lunas!¡.
The Dark Shadow is my passion.

rod00x3

Como puedo comprovar que haya compilado?? tecleo la linea y no me manda ningun error, ya intente buscar el ejecutable con locate ser4 y nada, entro como root, asi que tengo todos los permisos, creo, y lo que mas me desconcierta es que no me manda ningun error, pero no me genera el ejecutable, a cuando compilo lo unico que me responde es:

gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
Copyright (C) 2006 Free Software Foundation, Inc.
Esto es software libre; vea el código para las condiciones de copia.  NO hay
garantía; ni siquiera para MERCANTIBILIDAD o IDONEIDAD PARA UN PROPÃSITO EN
PARTICULAR

rod00x3

con la compilacion del enlace que me brindaste no me marca ningun error pero no me genera el ejecutable, con la compilacion que me colocaste de gcc -o archivo -lmysqlclient archivo.c, me envia error en la linea donde declaro MYSQL *con

ya no que que mas hacerrr??