Membres inscrits :668
Membres en ligne : 0
Invités en ligne : 6


|
| Conversation : Erreur de linkage C::B et wx2.8 |
Mindiell (Nouveau membre)
Inscrit le : 20-12-2008
Messages: 7
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
J'ai utilisé les tutoriels de Xaviou très bien expliqués pour compiler les libs. J'ai bien obtenu les libwxxx28u_xxx.a Mais lorsque je crée le premier exemple du tutoriel, j'ai ces erreurs de lien :
Debugger a écrit::: === FileFinder, Debug === obj\Debug\mainframe.o:: In function `ZNK12wxStringBase5emptyEv': )]+0x27):: undefined reference to `_imp___ZN12wxStringBase8InitWithEPKcjj' )]+0x47):: undefined reference to `_imp___Z10wxOnAssertPKciS0_S0_S0_' obj\Debug\filefinderapp.o:: In function `ZN12wxAppConsole16OnFatalExceptionEv': C:\Documents and Settings\Administrator\My Documents\Perso\Programmation\Tests\FileFinder\..\..\libs externes\include\wx\app.h .rdata$_ZTV13FileFinderApp[vtable for FileFinderApp]+0x44):: undefined reference to `wxApp::Initialize(int&, char**)' C:\Documents and Settings\Administrator\My Documents\Perso\Programmation\Tests\FileFinder\..\..\libs externes\include\wx\app.h .rdata$_ZTV13FileFinderApp[vtable for FileFinderApp]+0x90):: undefined reference to `wxAppConsole::OnAssertFailure(char const*, int, char const*, char const*, char const*)' C:\Documents and Settings\Administrator\My Documents\Perso\Programmation\Tests\FileFinder\..\..\libs externes\include\wx\app.h .rdata$_ZTV13FileFinderApp[vtable for FileFinderApp]+0x94):: undefined reference to `wxAppConsole::OnAssert(char const*, int, char const*, char const*)' :: === Build finished: 5 errors, 0 warnings === Alors, j'ai créé moi-même le projet, et j'ai fait bien attention à tout : - j'ai les libs au bon endroit - j'ai les .h aussi au bon endroit - j'ai mis ca dans le lieur : -lwxbase28u -lwxmsw28u_base
Ca compile parfaitement, mais ca plante à la liaison. Je dois bien garder mes dlls nommées : wxbase28u_gcc_Mindiell.dll ???
Merci à vous,
PS : W2K3 Server C::B MinGW
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut.
Plusieurs petites choses à vérifier : - les flags wxUSE_UNICODE et WXUSINGDLL doivent être définis dans les options du projet puisque tes libs ont été compilées avec ces valeurs apparement. - il ne doit pas y avoir de DEBUG ou WXDEBUG, dans les options du projet. - ta deuxième lib linkée est incorrecte : je pense que ça doit être wxmsw28u_core
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Mindiell (Nouveau membre)
Inscrit le : 20-12-2008
Messages: 7
Snippets: 0
Tutoriels: 0
Hors ligne |
Youhouhou !!!
- Je n'avais pas ces flags - J'avais effectivement __WXDEBUG__ - J'avais bien la lib core, je me suis gouré en tapant mon message )
Par contre, ainsi ca ne marchait pas, alors j'ai essayé de compiler en Release : ca marche enfin !
Quel boulet je fais de vouloir utiliser les libs release pour compiler du debug. En même temps, je suis obligé d'utiliser les libs de Debug pour compiler en debug ? je veux pas debugger WxWidgets, mais mon programme....
Merci à toi, je vais pouvoir continuer ton tutoriel !
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Si tu veux utiliser les libs release, même en mode debug, il suffit de supprimer cette valeur et ça devrait marcher.
Dans ce cas, moi, je crée une valeur perso (par exemple MY_DEBUG) pour pouvoir éventuellement mettre des #ifdef dans le code.
Mais l'utilisation de __WXDEBUG__ implique l'utilisation des libs wxmsw28ud...
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Mindiell (Nouveau membre)
Inscrit le : 20-12-2008
Messages: 7
Snippets: 0
Tutoriels: 0
Hors ligne |
T'es un Dieu, en effet, ca marche parfaitement !
Merci beaucoup, je reviendrai
| |
|
|