[C++] wxWidgets + MinGWDevStudio + ODBC = 'Undefined Reference'

wxWidgets + MinGWDevStudio + ODBC = 'Undefined Reference' [C++] - C++ - Programmation

Marsh Posté le 10-12-2006 à 13:50:16    

'lut
 
Bon, je me cogne au problème suivant:
Impossible de faire joujou avec ma base MySQL via ODBC avec MinGW Developer Studio et wxWidgets
 
Lors du linkage, j'ai l'erreur 'undefined reference' pour les méthodes des classes wxODBC, notamment DbConnectInf() :

undefined reference to `wxDbConnectInf::wxDbConnectInf( [...] )'


Après consultation de divers questions sur des forums relatant le même problème, il semblerait que ce soit dû aux options de linkage (science dans laquelle je suis néophyte et pour laquelle j'ai pas le temps ni l'énergie de me passionner), mais rien qui me permette de résoudre mon problème.
Dans mes paramètres de link, je dirais que j'ai bien "ce qu'il faut", mais je n'en suis pas sûr :

wxmsw26_core, wxbase26, wxtiff, wxjpeg, wxpng, wxzlib, wxregex, wxexpat, kernel32, user32, gdi32, comdlg32, winspool, winmm, shell32, comctl32, ole32, oleaut32, uuid, rpcrt4, advapi32, wsock32, odbc32


J'ai bien vérifié que l'option

#define wxUSE_ODBC 1

était bien positionnée dans le setup.h des wxWidgets (par défaut avec MinGWDevStudio). Ce qui tendrait à garantir que la version de wxWidgets incluse avec MinGWDevStudio a bien été compilée avec cette option pour utiliser les classes ODBC.
 
Franchement, je vois pas là. J'y ai passé déjà 3h, et ça fait vraiment chier de perdre du temps sur ces problèmes qui n'ont rien à voir avec de la programmation... Je me suis même intéressé à la recompilation de wxWidgets, mais ça a eu l'air encore plus compliqué que je pensais, donc j'ai abandonné
 
Qqun aurait une idée, ou un conseil ? Merci d'avance
 
Nb:
MinGW Developer Studio 2.05 (04-01-2005)
wxWidgets 2.6.3
myODBC 3.51.12 (juste pour info, car je ne peux même pas exécuter quoi que ce soit)
mySQL 5.0.16 (idem)
 
Ps: "plus je fais du C++, plus j'aime Java..."


Message édité par trevor le 11-12-2006 à 07:08:10

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 10-12-2006 à 13:50:16   

Reply

Marsh Posté le 10-12-2006 à 14:15:24    

Salut,
 
Si les "undefined reference" ne font, hum, référence qu'à wxDB, il doit y avoir une lib comme wxdb.a ou libwxdb.a qui doit traîner quelque part.
Vérifie ton répertoire lib dans wxwidget, histoire de voir s'il y a quelque chose qui y ressemblerait.

Reply

Marsh Posté le 10-12-2006 à 15:03:28    

Oui, uniquement avec les classes wxODBC. J'ai pourtant checké attentivement lib\, et je n'ai rien vu ne figurant pas dans ma liste de link, à part libwxbase26_odbc.a et libwxbase26d_odbc.a, que j'ai rajouté et là j'avais plein d'erreurs (paramètres de link wxbase26_odbc et wxbase26d_odbc).
Merci à toi de m'aider en tout cas :)


Message édité par trevor le 10-12-2006 à 15:04:30

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 10-12-2006 à 15:19:48    

Si tu mets les 2 il peut y avoir des conflits, ce qui peut être les erreurs que tu as eu. La version comportant un d dans le nom, veut sans doute dire debug. Donc tu peux mettre celle-ci lorsque tu compile en mode debug, histoire de pouvoir debugger jusqu'au bout (bien que ce ne soit peut être pas obligatoire).
L'autre est utilisable en mode release, et probablement debug.

Reply

Marsh Posté le 11-12-2006 à 01:52:39    

J'ai essayé l'une et l'autre toute seule alternativement, et les 2 en même temps.
Apparemment, c'est pas ça :)

Reply

Marsh Posté le 11-12-2006 à 02:12:35    

Désolé alors; faudra attendre qu'un utilisateur de wxWidget passe par là, je vois pas ce qui peut clocher :/

Reply

Marsh Posté le 12-12-2006 à 17:48:44    

Bon, pour le moment, j'ai pallié le pb en utilisant la librairie OTL (ODBC Template Library) (http://otl.sourceforge.net)
Cela dit, je trouve ça moins propret, notamment pour la lecture d'une bdd, vu que tout est réalisé sous forme de flux (si j'ai bien saisi).
Pour le moment, j'arrive à "gérer" la base (création + destruction table) et à y écrire des valeurs. Me reste à voir comment faire la lecture...

Reply

Sujets relatifs:

Leave a Replay

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