Ayuda problema al compilar c+mysql en windows

Iniciado por Drewermerc, 15 Junio 2014, 05:30 AM

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

Drewermerc

Hola a todos
Bueno quisiera ver si alguien me puede ayudar a para poder compiar c+mysql en windows ya que e tratado varios metodos pero no me funcionan.
e tratado lo siguiente:
solo linkear las librerias de mysql pero no me funciono.

tambien creado la libreria libmysql.dll  a libmysql.a compila bien todo pero al ejecutar se deiene el programa y analizando con el gdb dice lo siguiente:
->->value-history-value
{<text variable, no debug info>} 0x401690 <mysql_init

y no se que quiere decir.

Tambien intente otro metodo el cual tambien tengo que convertir libmysq.lib a libmysql.a con reimp pero hacer.
>reimp libmysql.lib
reimp: libmysql.lib: invalid or corrupt import library
me da ese error y no se que mas hacer para compilar y que se ejecute bien el programa.

si alguien sabe algun metodo espero me pueda ayudar.

este es mi codigo:


#include "mysql.h"
#include <stdio.h>
#include <stdlib.h>
#include <winsock.h>
int main()
{
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "Prueba";
char *database = "prueba";
conn = mysql_init(NULL);


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


if (mysql_query(conn, "select * from datos"))
{
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}

res = mysql_use_result(conn);
printf("ID\tNombre\t\tedad\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s\t%s\t%s \n", row[0],row[1],row[2]);


mysql_free_result(res);
mysql_close(conn);
}


uso devc++, codeblocks y gcc por consola.

Bueno espero que me puedan ayudar.
Saludos.
Drewermerc.

eferion

Cita de: Drewermerc en 15 Junio 2014, 05:30 AM
solo linkear las librerias de mysql pero no me funciono.

Y no te funcionó porque...

Cita de: Drewermerc en 15 Junio 2014, 05:30 AM
tambien creado la libreria libmysql.dll  a libmysql.a compila bien todo ...

Es decir, no has podido crear la librería pero sin embargo si has podido crear la DLL???

Cita de: Drewermerc en 15 Junio 2014, 05:30 AM
pero al ejecutar se deiene el programa y analizando con el gdb dice lo siguiente:
->->value-history-value
{<text variable, no debug info>} 0x401690 <mysql_init

Eso te está diciendo que esa parte del código no está compilada en modo debug y, en consecuencia, el gdb no sabe "explorar" su contenido así por las buenas.

Cita de: Drewermerc en 15 Junio 2014, 05:30 AM
Tambien intente otro metodo el cual tambien tengo que convertir libmysq.lib a libmysql.a con reimp pero hacer.
>reimp libmysql.lib
reimp: libmysql.lib: invalid or corrupt import library

Si no te funcionó el primer paso dudo mucho que este te vaya a dar mejores resultados. Si no eres capaz de compilar la librería no hay mucho que puedas hacer.

Drewermerc

hola eferion.
gracias por responder.

y bueno no me funciono por que  me decia que no reconocía las intrucciones como mysql_init(); y las demas.

bueno creo que hay me equivoque  y que era crear la biblioteca "libmysql.a" a partir de la "libmysql.dll y de la "libmysql.lib" ya las pude crear las dos bibliotecas ".a"  pero al linkear aun no reconoce las instrucciones ya tambien baje por aparte el mysql-c-connector y no puedo hacer que funcione tu no saber de algún metodo ya llevo varios dias investigando y no e podido hacerlo.

buen espeor que me puedas ayudar.
Saludos.
Drewermerc.

eferion

si no te reconoce instrucciones tipo mysql_init( ) es porque no estás enlazando con la librería.

Lo ideal es compilar primero la librería. Lo que suele suceder es que estas librerías arrastran dependencias (openssl para conexiones seguras, por ejemplo). Algunas de estas dependencias se pueden eliminar a costa de perder prestaciones, pero eso solo puedes hacerlo en el momento de compilar la librería.

Lo mismo las instrucciones de este enlace te sirven de ayuda.

Drewermerc

hola eferion.
bueno pues gracia spor la informacion pero no em funciono y ya no se quemas hacer de ninguna forma quiere compilar.

buenoe spero que me pueda seguir ayudando.
Saludos.
Drewermerc.

eferion

hasta el momento no he tenido que montar nunca el conector de mysql, no creo que te pueda ayudar dándote una serie de pasos concretos para montar la librería en Windows.

Lo siento.

Drewermerc

hola eferion.
Si no te preocupes y bueno creo que seguire intentado haber como logro compilarlo.
Saludos.
Drewermerc.

sanenr

tengo algunos con mysql y compilo asi
//compilar : gcc consulta2.cpp -o consulta2 -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -lstdc++ -lz   

y no tengo problema.! espero te sirva

flony

#8
una vez me queme las pestañas en el visual c++
hasta que me di cuenta habia descargado el mysql para 64 bit y estaba compilando en 32 nunca funcionaba  :rolleyes:
CitarTambien intente otro metodo el cual tambien tengo que convertir libmysq.lib a libmysql.a con reimp pero hacer.
>reimp libmysql.lib
reimp: libmysql.lib: invalid or corrupt import library
me da ese error y no se que mas hacer para compilar y que se ejecute bien el programa.
creo eso era del tutorial de cconclase, a mi nunca me funciono, usa la ayuda que tiene mysql con tu ide
si un problema no tiene solucion entonces no es un problema...es algo inevitable