Je programme en C++ dans l'éditeur Code::Blocks, et compile avec VC++ 7.1 toolkit.
Il est relativement ennuyeux d'utiliser les APIs Windows pour créer une interface graphique en C++ (du genre CreateWindow), et c'est pour cela que j'ai voulu adopter wxWidgets 2.6.2... mais 'voulu' seulement, car pour l'instant, la mise en pratique n'est pas réjouissante.
Première chose a faire, la compilation des librairies wxWidgets avec VC++7.1 toolkit et en utilisant le nmake.exe du Windows SDK. Cela ce passe plutot bien, mis a part les messages déplaisants du genre 'L'optimisation n'est pas disponible dans la version standard'. La compilation se termine sans erreur. Je me retrouve donc avec des librairies dynamiques...
Mais là survient le gros problème : l'utilisation de wxWidgets en elle même... Je crée donc un nouveau projet sous Code::Blocks, et remplit les fichiers de code par l'exemple 'Hello World' fournie dans la documentation de la librairie wxWidgets. La compilation se passe à merveille, mais le linkage quand a lui ne fonctionne pas du tout. Voila le début des erreurs :
.objs\main.o(.text+0x45):main.cpp: undefined reference to `_imp___ZN12wxAppConsole17CheckBuildOptionsEPKcS1_'
.objs\main.o(.text+0xf4):main.cpp: undefined reference to `_imp___Z7wxEntryP11HINSTANCE__S0_Pci'
.objs\main.o(.text+0x295):main.cpp: undefined reference to `_imp__wxFrameNameStr'
.objs\main.o(.text+0x2c1):main.cpp: undefined reference to `_imp__wxDefaultSize'
.objs\main.o(.text+0x2ca):main.cpp: undefined reference to `_imp__wxDefaultPosition'
.objs\main.o(.text+0x36b):main.cpp: undefined reference to `_imp___ZN9wxMenuBarC1Ev'
.objs\main.o(.text+0x8d8):main.cpp: undefined reference to `wxFrameBase::SetMenuBar(wxMenuBar*)'
Et j'en passe, il y a 52 erreurs en tout.
Tout de suite, je vait regarder la config du projets : mais non, ce n'est pas ca le problème, toutes les librairies wxWidgets sont bien incluses...
Alors comment se fait-il que le linker agit comme s'il ne trouvait pas les librairies ???
J'ai eu beau désactiver le header précompilé, rien a faire, le problème ne vient pas de là.
J'ai eu beau essayer de compiler avec GCC, le même problème survient.
Doit-je changer d'éditeur de code ? De compilateur ?
Merci d'avance.