|
arm-linux-gcc y libmysqlclient (solucionado)
|
| Autor |
Mensaje |
Snoopydog
Usuario PL
Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado:
Sin Conexión
Reputación: 0
|
arm-linux-gcc y libmysqlclient (solucionado)
Buenas tardes tengan todos
Disculpen que los moleste pero aqui llego con otro problema relacionado con el gcc y mysql, el problema es que trato de hacer un programa en C que me conecte a una base de datos de mysql, pero al compilar:
root@linux$ arm-linux-gcc -Wall -o prog programa.c
o
root@linux$ arm-linux-gcc-3.3 -Wall -o prog programa.c
me marca errores de que no encuentra la libreria de mysql.h i las funciones no se han declarado, por tal motivo no se termina de compilar y no se crea el ejecutable, he estado investigando y posiblemente al instalar gcc no instale las librerias de mysql, entonces queria saber si pueden orientarme a como reinstalar el gcc con librerias de mysql o solo las librerias ?
yo trabajo con Debian sarge 3.1 y la version de gcc 3.3.5 y mysql 4.0.24
gracias por la atencion
|
|
| 09-26-2007 02:44 PM |
|

|
p_eter
Chaos Manager
      
Mensajes: 4,062
Grupo: Administrador
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 11
|
RE: Problemas con gcc y programas en C
Puedes verificar si tienes la biblioteca embebida del servidor, que está en el archivo libmysqld.a, y se incluye en el directorio lib de una instalación estándar de MySQL. Si la instalación se realizó en el directorio /usr/local/mysql, la biblioteca embebida se encuentra en /usr/local/mysql/lib
|
|
| 09-26-2007 03:30 PM |
|
 |
Snoopydog
Usuario PL
Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado:
Sin Conexión
Reputación: 0
|
RE: Problemas con gcc y programas en C
Hola p_eter
Bueno ya busque esa direccion pero no tengo la carpeta de mysql, la busque en /usr/local pero no se encunetra, supongo que no tengo instalado la libreria de mysql cierto??, entonces como podría instalarlo?
|
|
| 09-26-2007 03:45 PM |
|
 |
p_eter
Chaos Manager
      
Mensajes: 4,062
Grupo: Administrador
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 11
|
RE: Problemas con gcc y programas en C
Quizás no esté en /usr/local , fíjate en /usr/lib/mysql/
si instalaste mysql en algun lado debe estar esa carpeta ..
Instalaste el lado cliente y servidor del mysql, si?
Recomiendan aptitude o synaptic para iniciarse en el manejo de paquetes en debian.
|
|
| 09-26-2007 04:40 PM |
|

|
german
Moderador
    
Mensajes: 224
Grupo: Moderadores
Registro en: Apr 2006
Estado:
Sin Conexión
Reputación: 3
|
RE: Problemas con gcc y programas en C
Estás compilando para ARM?(?) Tenés que instalar los include además, deben estar en el repositorio, creo que el paquete es libmysqlclient-dev. Los archivos *.h te los pone en /usr/include y ahí buscar por defecto el compilador.
|
|
| 09-26-2007 05:49 PM |
|
 |
Snoopydog
Usuario PL
Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado:
Sin Conexión
Reputación: 0
|
RE: Problemas con gcc y programas en C
Hola de nuevo 
si compilo con arm-linux-gcc
p_eter, encontre una carpeta en la direccion /usr/share/mysql la que contiene otras carpetas con nombres de lenguas como english,japanese, etc, y encontre unas librerias parecidas a las que dijo german, las describo a continuacion:
en la direccion: /usr/lib
libmysqlclient.so.12@
libmysqlclient.so.12.0.0
libmysqlclient_r.so.12@
libmysqlclient_r.so.12.0.0
nose si eso sea lo que falte de instalar, o si eso tenga las cabeceras .h del mysql pero en librerias de mysql es lo que encontre con el locate, tampoco conozco que tipo de archivos son los .so, creen que deba instalar esos archivos? si es asi como lo hago?
gracias y disculpen la ignorancia U_U...
|
|
| 09-26-2007 08:47 PM |
|
 |
Snoopydog
Usuario PL
Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado:
Sin Conexión
Reputación: 0
|
RE: Problemas con gcc y programas en C
Hola
bueno aqui les muestro el error que me marca al compilar mis programas, espero que se entienda u poco mas:
el programa en C es:
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
int main()
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost"; // Servidor donde se encuentra la BD
char *user = "root"; // Usuario de la base de datos
char *password = "hello"; // Password de este usuario
char *database = "mysql"; // Base de datos a utilizar
conn = mysql_init(NULL);
/* Conexion a la base de datos */
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
/* Realizar la consulta de la Base de Datos */
if (mysql_query(conn, "show tables")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
/* Obtener la salida de la consulta */
printf("Tablas de la base de datos %s:\n", database);
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s\n", row[0]);
/* Cerrar la conexion de la base de datos */
mysql_free_result(res);
mysql_close(conn);
}
y compilo como:
arm-linux-gcc -Wall -o prog program.c
program.c:3:20:mysql.h:No such file or directory
program.c: in function 'main' :
program.c:6: error: 'MYSQL' undeclared (first use in this function)
program.c:6: error: (Each undeclared identifier is reported only once
program.c:6: error: for each function it appears in.)
program.c:6: error: 'conn' undeclared (first use in this function)
program.c:7: error: 'res' undeclared (first use in this function)
program.c:8: error: 'MYSQL_ROW' undeclared (first use in this function)
program.c:8: error: syntax error before "row"
program.c:13: warning: implicit declaration of function 'mysql_init'
program.c:15: warning: implicit declaration of function 'mysql_real_connect'
program.c:17: warning: implicit declaration of function 'mysql_error'
program.c:17: warning: format argument is not a pointer (arg 3)
program.c:21: warning: implicit declaration of function 'mysql_query'
program.c:22: warning: format argument is not a pointer (arg 3)
program.c:25: warning: implicit declaration of function 'mysql_use_result'
program.c:28: warning: error 'row' undeclared (first use in this function)
program.c:28: warning: implicit declaration of function 'mysql_fetch_row'
program.c:31: warning: implicit declaration of function 'mysql_free_result'
program.c:32: warning: implicit declaration of function 'mysql_close'
muchas gracias por la ayuda
|
|
| 09-27-2007 12:54 PM |
|

|
p_eter
Chaos Manager
      
Mensajes: 4,062
Grupo: Administrador
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 11
|
RE: Problemas con gcc y programas en C
Por favor, prueba
gcc programa.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -o prog
Cambiando si es necesario la ubicación de Librerias e Include
Habias señalado que a las librerias ya las habias localizado, quedaría tal como dijo german las cabeceras. Deben estar en /usr/include/mysql . Ante la duda, te bastará con un
locate mysql.h
Si no está, instalas mysql-devel
creo que en sarge es libmysqlclient10-dev
Cuenta como te fué,
saludos
|
|
| 09-28-2007 12:16 AM |
|
 |
Snoopydog
Usuario PL
Mensajes: 27
Grupo: Registrado
Registro en: Jun 2007
Estado:
Sin Conexión
Reputación: 0
|
RE: Problemas con gcc y programas en C
hola amigos
bueno aqui vengo con buenas nuevas, por fin se pudo resolver el porblema hace unos minutos, enseguida les muestro paso a paso lo que hice, era necesario descargar tanto las librerias como los headers:
1.-Primero descargue los paquetes de librerias y cabeceras de la pagina de http://packages.debian.org/sarge/
los nombres son:
libmysqlclient10_3.23.56-3_arm.deb <--- esta contiene las librerias
libmysqlclient10-dev_3.23.56-3_arm.deb <--- este contiene las cabeceras (mysql.h)
2.-Después subi los paquetes a mi tarjeta arm
3.- despues tuve que instalarlos:
dpkg -i libmysqlclient10_3.23.56-3_arm.deb
dpkg -i libmysqlclient10-dev_3.23.56-3_arm.deb
4.- al tener instalados los paquetes ya es psible compilar programas de la siguiente forma:
arm-linux-gcc -I/usr/include/mysql -L/usr/lib programa.c -o prog -lm -lmysqlclient
esas son las direcciones donde me insatlo tanto las librerias como las cabeceras
5.- finalmente solo queda ejecutar el programa
./prog
y listo!!, les dejo los pasos para que puedan ayudar a otras personas que tengan el mismo problema, cabe notar que esto funciona en Debian sarge, si fuese otro derivado de debian creo ke es necesario bajar los packetes de esa distribucion.
solo me keda agradecerles por su ayuda ya que sin ella no lo hubiera logrado, espero verlos pronto con otros problemas
muchas gracias 
el problema ha sido resuelto.
|
|
| 09-28-2007 08:41 PM |
|
 |
p_eter
Chaos Manager
      
Mensajes: 4,062
Grupo: Administrador
Registro en: Jun 2005
Estado:
Sin Conexión
Reputación: 11
|
RE: Problemas con gcc y programas en C
Genial! cada uno puso su granito y salió Ok.
Seguro que resulta útil, dependiendo la distro van a cambiar nombre y forma de instalar los paquetes, pero los conceptos son los mismos.
Te invito a seguir colaborando, sea con preguntas, opiniones o sugerencias, todo sirve para que la comunidad crezca y se fortalezca.
Felicitaciones!
|
|
| 09-29-2007 12:03 AM |
|

|