frogs_yoman
Messages postés11Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention25 août 2006
-
22 avril 2006 à 20:49
frogs_yoman
Messages postés11Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention25 août 2006
-
23 avril 2006 à 16:17
Bonjour à tous,
Je n'arrive pas à compiler de programme utilisant l'API mysql.h sous winxp, que ce soit sous DevC++ ou VisualC++6.
J'ai installé mysql-5.0.18-win32.
J'ai bien référencé les liens lib et h dans le compilateur et lorsque je compile avec #include <mysql.h> , il plante à chaque fois sur mysql_com.h avec des erreurs de type SOCKET undeclared...et des centaines d'erreurs...
Est-ce que le fichier mysql_com.h a un probleme ??
frogs_yoman
Messages postés11Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention25 août 2006 23 avril 2006 à 16:17
Merci pour votre aide.
Apres avoir passé encore la journee sur le net, et des centaines de tests
((notamment:
J'ai d'abord testé différentes options avec la creation du .a de la lib libmysql.lib (avec reimp.exe et dlltool qui recreent la dll et sa definition: libmysql.a et libmysql.dll: voir sur le net: http://www.openwebspider.org/link_mysql_windows_dev_cpp.php ou http://dev.mysql.com/doc/refman/4.1/en/windows-client-compiling.html enfin c tres complexe et ça marche pas ...alors à ceux qui ont le même pb, passez le chemin ^^ ))
j'ai trouvé une solution:
=>> Plus simplement j'ai finit par retourner sous dev cpp! j'ai telechargé le package mysql (qui crée le dossier C:\Dev-Cpp\include\mysql que l'on reference ensuite avec #include<mysql/mysql.h>)
Enfin j'ai ajouté dans: outils/options du compil/"lors de l'appel du compil": -lmysql (oui, -lmysql et pas -llibmysql... allez savoir pq...^^)
Je pense que ça doit faire la même chose qu'avec #pragma comment(lib, "libmysql.lib") mais bon j'ai pas testé
Voilà, et sous vc++6 il faut juste ajouter les path .../mysql/include et .../mysql/lib/opt et puis ajouter sous Project/settings/ onglet link/ en dernier dans "oblject/library modules" : libmysql.lib (oui cette fois libmysql.lib et pas mysql lol )
Voilà encore merci, je pense que vu le nombre de personnes ayant visiblemnt le meme pb, il serait bon de mettre ces explications dans une rubrique plus ciblée...
++
frogs_yoman
Messages postés11Date d'inscriptionmercredi 22 décembre 2010StatutMembreDernière intervention25 août 2006 23 avril 2006 à 10:50
Salut, oui tu as raison, apres des heures de recherche sur le net, et enormement de personnes ayant visiblement le meme type de probleme! j'ai pu apprendre qu'il faut ajouter :
winsock.h ou windows.h ou encore my_global.h (fournie par mysql) et ^cela AVANT mysql.h.
J'ai donc fait ça mais maintenant j'ai de nouvelles erreurs:
----
SansNom2.obj : error LNK2001: unresolved external symbol [mailto:_mysql_init@4 _mysql_init@4]
SansNom2.obj : error LNK2001: unresolved external symbol [mailto:_mysql_select_db@8 _mysql_select_db@8]
...
Release/SansNom2.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
---
Erreurs que de nombreuses personnes semblent aussi avoir (recherche google: "mysql unresolved external": y a du monde ^^)
Et j'ai ce probleme pour toutes les fonctions de mysql que je veux exécuter.
J'ai donc un pb de lien avec une lib je suppose mais pourtant j'ai bien rentré les paths de mysql\lib et mysql\include dans mon projet (que ce soit d'ailleurs sous devc++ ou visulac++6...)
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 23 avril 2006 à 11:17
Problème d'édition de liens. Ton compilateur ou plutôt son module d'éditions de liens ne sait pas où trouver les librairies précompilées fourni avec ta distribution de mysql.
Si tu utilises Dev Cpp, va dans "outils->Compilateur->Répertoires->Répertoires Bibliothèques" et ajoute le répertoire où se trouve ces librairies.
Sinon, je ne vois pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 23 avril 2006 à 12:26
Ouvres une console et vérifies que les chemins de mysql sont présents : SET ou SET PATH.
Sinon regardes dans les readme de ton installation, il faut peut être rajouter des chemins et quelques variables dans l'environnement à la main : Bureau->Poste de Travail->Propriétés->Avancées->Variables d'environnement, modifies et rédemarres.
Oeil_de_taupe
Messages postés150Date d'inscriptionsamedi 31 janvier 2004StatutMembreDernière intervention16 février 2009 23 avril 2006 à 14:38
Avec les APIs MySQL une DLL est livrée.
Avec cette DLL un .h et un .lib. Tu as bien inclus le .h mais j'ai l'impression que tu as oublié d'ajouter le lib, ce qui fait que il y a un problème au linkage.
Donc il suffit d'ajouter le lib avec "#pragma comment(lib, 'lenomdelalib.lib')" et ne pas oublier d'ajouter ce fichier lib dans le dossier de ton compilateur qui contient tous les .lib
Voila ce que j'inclus quand j'utilise l'API MySQL
//Pour la connection à MySQL
#include<windows.h>
#include<mysql/mysql.h>
#pragma comment(lib, "libmysql.lib")