Utilisation des API C de MySQL

Utilisation des API C de MySQL - SQL/NoSQL - Programmation

Marsh Posté le 28-06-2005 à 13:13:32    

Bonjour,
 
J'essais d'utiliser l'API C de MySql pour développer un prog.
Hélas, j'arrive pas à compiler, Visual studio ne trouve pas les librairies pour compiler, quelque soit la fonction qui se trouve dans les bibliothéques de MySQL.
 
J'utilise Visual Studio 6.0
J'ai installé mysql-4.1.12a-win32 (version complete de 36.9Mo)
 
Dans visual studio, j'ai mis dans Tools/Options/Directories les chemins suivants  :
 
- des includes (d:\MySQL Server 4.1 Full\include)
- des librairies(d:\MySQL Server 4.1 Full\lib\opt et MySQL Server 4.1 Full\lib\debug )
 
J'ai le message d'erreur suivant :
 
Linking...
essais connexion.obj : error LNK2001: unresolved external symbol _mysql_get_client_info@0
Debug/essais connexion.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
 
essais connexion.exe - 2 error(s), 0 warning(s)

 
J'ai consulté la doc officielle mais je ne trouve rien à ce sujet et les chemins des librairies sont corrects.
 
Voici mon source pour essayer de récupérer la version du client, mais les autres fonctions  ne marchent pas non plus):
 
#include <stdio.h>
#include <afxsock.h>
#include <my_global.h>
#include <mysql.h>
 
void main()
{
 char host[10]="localhost";
 char password[10]="pass";
 uint port=3600;
 char user[10]="root";
 
 char *test;
 
 
 test=(char *)mysql_get_client_info();
}

 
La compilation sans les liens n'indique aucunes erreurs de syntaxe dans le source.
 
Merci de votre aide.

Reply

Marsh Posté le 28-06-2005 à 13:13:32   

Reply

Marsh Posté le 28-06-2005 à 15:00:21    

Faut linker avec le .lib de MySQL qui se trouve quelque part dans ton package (répertoire /lib généralement).
Là tu as donné le path vers la lib, mais tu n'as pas dit de lier avec...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 28-06-2005 à 16:15:16    

Oki, ça marche ^^
 
Il fallait que j'ajoute le fichier libmysql.lib dans Menu Project => Setting => Onglet link, dans le champ Object/library modules.
 
Mais je ne comprends pas bien ? Il ne suffi pas de donner les chemin des libs ? il faut donc les linker dans le projet ?
Mais comment savoir lequelles il faut ajouter ?

Reply

Marsh Posté le 28-06-2005 à 22:28:18    

Ben non, ça rajoute juste cet emplacement au path de recherche des libs. Quand tu dis rajoute libmysql.lib il va chercher dans tous les rep qu'il connait comme des rep de libs. Il peut pas automatiquement inclure tous les libs, sinon bonjour les problèmes.
C'est exactement pareil avec les includes. C'est pas parce que tu as rajouter le rep /include de mysql que ça te dispense de faire #include <mysql.h>.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 29-06-2005 à 08:27:04    

Ok, j'ai compris.
Merci à toi ;o)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed