[wxWidgets-3.1.1] [Code::Blocks 17.12] erreur à l'édition de lien
Bonjour,
Je suis en train d'installer une plate forme de développement dans la configuration suivante :
WINDOWS 7 / Code::Blocks 17.12 / wxWidgets-3.1.1
Pour cela j'ai suivi avec application le tuto
avec les étapes suivantes :
- Installation de Code::Blocks 17.12 à partir de codeblocks-17.12mingw-setup.exe
- Mise à jour du PATH% pour C:\Program Files (x86)\CodeBlocks\MinGW\bin
- Téléchargement de wxWidgets-3.1.1.zip et dézippage sur C:
- Mise à jour du fichier \wxWidgets-2.8.10\include\wx\msw\setup.h
pour les options wxUSE_STL 1 et wxUSE_STD_IOSTREAMH 1 (avec un H à la fin, la variable wxUSE_STD_IOSTREAM comme dans le tuto n'existe pas ou plus ?)
les autres options demandées dans le tuto sont maintenant le default de la 3.1
- Construction des librairies WX dans C:\wxWidgets-3.1.1\build\msw>
mingw32-make -f makefile.gcc BUILD=release
mingw32-make -f makefile.gcc BUILD=debug
- Téléchargement des sources du projet wxProjet depuis l'archive,
- adaptation de la version 2.8 en 3.1
Compilation du projet, les objets sont créés, erreur à l'édition de lien :
Code:
1 2 3 4 5 6 7 8 9 10 11
| ||=== Build: Debug in wxProjet (compiler: GNU GCC Compiler) ===|
C:\wxWidgets-3.1.1\lib\gcc_lib\libwxmsw31ud_core.a(corelib_window.o)||In function `ZN8wxWindow16MSWHandleMessageEPljjl':|
C:\wxWidgets-3.1.1\build\msw\..\..\src\msw\window.cpp|3489|undefined reference to `LresultFromObject@12'|
C:\wxWidgets-3.1.1\build\msw\..\..\src\msw\window.cpp|3668|undefined reference to `GetThemeBackgroundContentRect@24'|
...
C:\wxWidgets-3.1.1\build\msw\..\..\src\msw\notebook.cpp|1127|undefined reference to `GetThemeBackgroundExtent@24'|
C:\wxWidgets-3.1.1\build\msw\..\..\src\msw\notebook.cpp|1142|undefined reference to `DrawThemeBackground@24'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 12 second(s)) ===|
|
J'ai aussi fait un projet de type wxWidgets comme dans le tuto et j'ai le même résultat.
Selon mon analyse, on ne trouve pas ce qu'il faut dans les librairies compilées, parce qu'il manque qq chose dans les paramètres / options de compilation au moment de la construction ?
Merci, si quelqu'un peut me donner une piste.
7 pièce(s) jointe(s)
Localisation des librairies et déclaration des Includes
Je reprend ici les conclusions auxquelles je suis arrivé.
Au niveau projet :
Pièce jointe 361392
15 librairies déclarées par l'assistant + uxtheme et oleacc ajoutées pour le moment.
Ses librairies sont sous MinGW. Dans ma version installées, j'ai 173 librairies.
Pièce jointe 361400
Pièce jointe 361408
Sous wxWigets pour xutheme par exemple :
Pièce jointe 361410
Sous Windows pour xutheme par exemple :
Pièce jointe 361412
Pour xutheme, on peut ne pas écrire "lib" devant le nom et enlever l'extension, mais pour rester cohérent par rapport à libkernel32.a par exemple, je préfère écrire le nom complet.
Il est à noté que dans la ligne de commande, les caractères "lib" et ".a" sont enlevés.
Code:
1 2 3 4 5 6 7 8 9
| -------------- Build: Debug in CdmRppTco (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -g -D__WXDEBUG__ -IC:\wxWidgets-3.1.1\include -IC:\wxWidgets-3.1.1\lib\gcc_lib\mswud -c D:\CDMrail\CB0\CdmRppTco\CdmRppTcoApp.cpp -o obj\Debug\CdmRppTcoApp.o
mingw32-g++.exe -Wall -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -g -D__WXDEBUG__ -IC:\wxWidgets-3.1.1\include -IC:\wxWidgets-3.1.1\lib\gcc_lib\mswud -c D:\CDMrail\CB0\CdmRppTco\CdmRppTcoMain.cpp -o obj\Debug\CdmRppTcoMain.o
windres.exe -IC:\wxWidgets-3.1.1\include -IC:\wxWidgets-3.1.1\lib\gcc_lib\mswud -J rc -O coff -i D:\CDMrail\CB0\CDMRPP~1\resource.rc -o obj\Debug\resource.res
mingw32-g++.exe -LC:\wxWidgets-3.1.1\lib\gcc_lib -o bin\Debug\CdmRppTco.exe obj\Debug\CdmRppTcoApp.o obj\Debug\CdmRppTcoMain.o obj\Debug\resource.res -mthreads -lwxmsw31ud_core -lwxbase31ud -lwxpngd -lwxzlibd -lwxjpegd -lwxtiffd -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -lshlwapi -lversion -loleacc -luxtheme -mwindows
Output file is bin\Debug\CdmRppTco.exe with size 80.43 MB
Process terminated with status 0 (0 minute(s), 13 second(s))
0 error(s), 0 warning(s) (0 minute(s), 13 second(s)) |
Au niveau Debug et Release :
Pièce jointe 361396
4 librairies déclarées par l’assistant + jpeg et tiff ajoutées pour le moment.
Ses librairies sont sous wxWidgets (3.1), il y a 44 librairies, soit 2 fois ( 15 + 7 ), 2 fois parce que Debug et Release, et 15 marquée de la version 31 plus 7 sans versions.
Pièce jointe 361428
Voila, c t pour faire avancer le schmilblick :)
@+ Michel
P.S. petite remarque pour l'avenir, entre le 32 dans kernel32 par exemple qui vient de la grosse magouille de MicroSoft pour gérer le 32/64 bits et la prochaine version 3.2.0 de wxWidgets, cela fera aussi 32 ... :mouarf: