wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :668

Membres en ligne : 0
Invités en ligne : 6
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» Compilation Code::Block + wxWidgets
Conversation : Compilation Code::Block + wxWidgets
09-03-2009 13:38:14  Compilation Code::Block + wxWidgets #1
kiklick (Nouveau membre)
Inscrit le : 09-03-2009
Messages: 1
Snippets: 0
Tutoriels: 0
Hors ligne
Bonsoir/Bonjour,
Je suis sous WinXP et je souhaiterais m'essayer à la programmation C++ avec les WxWidgets.
J'ai installé Code::Blocks 8.02 avec mingw et les WxWidgets 2.8.9
J'ai téléchargé les exemples/demos fournie sur
http://www.wxwidgets.org/downloads/demos.htm
..mais pour chacun des exemples j'obtiens énormément d'erreur à la compilation.

C:\CPP-Dev\wxWidgets-DialogsDemo-Windows\dialogs.cpp|18|wx/wxprec.h: No such file or directory|
C:\CPP-Dev\wxWidgets-DialogsDemo-Windows\dialogs.cpp|25|wx/wx.h: No such file or directory|
C:\CPP-Dev\wxWidgets-DialogsDemo-Windows\dialogs.cpp|28|../sample.xpm: No such file or directory|
...

Merci pour votre aide, ou si vous pouvez m'indiquer un bon tuto.
09-03-2009 14:39:37  Re: Compilation Code::Block + wxWidgets #2
volfoni54 (Membre)
Lieu: Volfoni
Inscrit le : 14-09-2008
Messages: 15
Snippets: 0
Tutoriels: 0
Hors ligne
Je ne sais pas comment sont les exemples, mais je ne pense pas qu'ils prennent em compte qu'ils sont des projets wxWidgets.
Le plus simple serait de suivre un tutorial sur l'utilisation de wxWidget sous Code::Blocks.

Volofni54
10-03-2009 09:50:04  Re: Compilation Code::Block + wxWidgets #3
Gamal le Celte (Membre)
Lieu: Nancy
Inscrit le : 28-10-2008
Messages: 10
Snippets: 0
Tutoriels: 1
Hors ligne
En cherchant sur ce forum tu trouveras :
- des explications,
- un super tuto
- et un outil pour installer wxWidget.

En cherchant encore tu trouveras aussi, dans des discutuions, des trucs pour parametrer tout ca.

Moi qui ne suis pas C++ pour deux rond, j'ai testé et ca marche.

_____________________________________

Gamal
Python / Boa / wx.Python
17-05-2010 22:09:01  Re: Compilation Code::Block + wxWidgets #4
vdm (Nouveau membre)
Inscrit le : 17-05-2010
Messages: 9
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Bonjour,

Merci d'avoir signalé l'existence de l'outil d'installation qui était sous nos yeux, je ne l'avais pas vu dans la colonne de gauche... Le tuto est très bien, mais il y a des cas où l'on veut compiler soi même (pour comprendre comment ça marche, et comment ça marchera demain).

Voici l'exposé de mon propre problème de compilation de wxWidgets avec Code::Blocs et MinGW :
Le compilateur ne trouve pas le fichier gdiplus.h, malgré le fait que je demande de ne pas l'utiliser (USE_GDIPLUS= 0: pour l’utilisation des wxGraphicsContext ne marche pas avec MinGW).
1) Code::Blocs 8.02 et de MSYS (UNIX-like de MinGW)
2) je suis le tuto : installation de wxWidgets-2.8.11
3) modification de WXDIR\include\wx\msw\setup.h avec :
#define wxUSE_UNICODE 1
#define wxUSE_GLCANVAS 1
#define wxUSE_GRAPHICS_CONTEXT 0
#define wxUSE_ODBC 1
4) modification de WXDIR\build\msw\config.gcc avec :
USE_GDIPLUS=0
5) Dans une fenêtre MSYS ou ligne de commande :
cd WXDIR/build/msw
mingw32-make.exe –f makefile.gcc BUILD=release MONOLITHIC=0 UNICODE=1 SHARED=0 USE_OPENGL=1 USE_ODBC=1 USE_QA=1 USE_GDIPLUS=0
=> Compile correctement plusieurs bibliothèques, puis donne :
g++ -c -o gcc_mswu\corelib_graphics.o [...] ../../src/msw/graphics.cpp
../../src/msw/graphics.cpp:92:21: gdiplus.h: No such file or directory
Suivi de beaucoup d'erreurs...

J'ai trouvé un stock de fichiers gdiplusxxx.h sur Internet (koders.com), mais ce n'est certainement pas ce qu'il faut faire compte tenu des multiples erreurs de compilation que j'obtiens derrière.

Après toute cette description - merci de m'avoir suivi jusque là ;-) - comment faire pour désactiver effectivement GDIPLUS et compiler sans erreur ?
Ou comment récupérer les gdiplusxxx.h tout beaux qui iront bien ?

Remarque, j'ai tenté de compiler la version stable précédente et la dernière version wxWidgets, et là, la compil ne se lançait même pas... Bouuuu.

Merci pour votre aide.

Vincent
17-05-2010 23:41:41  Re: Compilation Code::Block + wxWidgets #5
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Salut.

As-tu essayé sans mettre la directive "USE_GDIPLUS=0" dans la ligne de commande ?
De plus, si tu utilises une fenêtre MSYS, il ne faut pas utiliser la commande "mingw32-make.exe", mais plutôt "configure" avec les options qui vont bien, suivi de "make" tout court.

Le processus de compilation avec MSYS n'est pas du tout le même qu'avec mingw32-make.exe

Pour ma part, lors de la création de l'installateur (et surtout des "paquets" qu'il installe), j'utilise mingw dans une fenêtre ms-dos classique, avec par exemple la ligne de commande suivante :

Code:

mingw32-make.exe -f makefile.gcc BUILD=release UNICODE=1 MONOLITHIC=0 SHARED=1 USE_OPENGL=1 USE_ODBC=1 USE_QA=1


Petit conseil en passant : tu devrais utiliser une version plus récente de Code::Blocks, qui a beaucoup évolué depuis la version 8.02.
Tu en trouveras une version complète (et en français) dans la partie "Téléchargements" de ce site.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
18-05-2010 15:26:23  Re: Compilation Code::Block + wxWidgets #6
freem (Membre)
Inscrit le : 09-04-2010
Messages: 11
Snippets: 0
Tutoriels: 0
Hors ligne
Si je peux me permettre, mingw32 à également évolué depuis.
L'installation à la main est plutôt ardu mais quelqu'un à créé un installateur:
http://www.tdragon.net/recentgcc/

Note: Il vaut mieux prendre celui qui pèse 26 Mo, chez moi l'autre ne trouve pas l'un des paquets.
19-05-2010 01:00:52  Re: Compilation Code::Block + wxWidgets #7
vdm (Nouveau membre)
Inscrit le : 17-05-2010
Messages: 9
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Merci pour vos réponses et précieux conseils.
- J'utilise USE_GDIPLUS=0
- J'ai oublié de dire que la compilation en mode debug fonctionne parfaitement, le problème n'est qu'en mode release
- J'ai installé le MS SDK 6.1 qui contient les headers gdiplus officielles, mais la compilation de graphics.cpp finit quand même par déconner (des erreurs dans les headers gdiplus).
- J'ai mis à jour mingw32 comme recommandé depuis tdragon.net
- La dernière version stable de Code::Blocs est bien la 8.02 que j'utilise, elle date effectivement un peu. Je vais tâcher d'installer le night build correctement, mais je ne l'utilise à priori pas pour compiler wxWidgets ?!
- Si j'utilise la ligne de commande plutôt que MSYS, j'ai une erreur immédiate que je vous livre avec la ligne de commande :

Code:

D:\Developpement\wxWidgets-2.8.11\build\msw>mingw32-make.exe -f makefile.gcc BUILD=release UNICODE=1 MONOLITHIC=0 SHARED=1 USE_OPENGL=1 USE_ODBC=1 USE_QA=1 USE_GDIPLUS=0
if exist ..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a
process_begin: CreateProcess(NULL, -c "if exist ..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a", ...) failed.
make (e=2): Le fichier spÚcifiÚ est introuvable.
mingw32-make.exe: *** [..\..\lib\gcc_dll\libwxregexu.a] Error 2

Merci pour votre aide.

V°°

Dernière modification par vdm (19-05-2010 15:17:08)

19-05-2010 18:20:20  Re: Compilation Code::Block + wxWidgets #8
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Salut.

vdm a écrit:
J'utilise USE_GDIPLUS=0
Justement : essaye sans ce paramètre

vdm a écrit:
- J'ai oublié de dire que la compilation en mode debug fonctionne parfaitement, le problème n'est qu'en mode release
Là, c'est encore plus bizarre :/

vdm a écrit:
- J'ai installé le MS SDK 6.1 qui contient les headers gdiplus officielles, mais la compilation de graphics.cpp finit quand même par déconner (des erreurs dans les headers gdiplus).
Heu... ce SDK concerne Visual C++, non ? Il n'a donc rien à voir avec MinGW / Gcc

vdm a écrit:
- J'ai mis à jour mingw32 comme recommandé depuis tdragon.net
Je doute fort que le problème vienne de là : j'utilise la version "classique" obtenue depuis mingw.org sans problèmes.

vdm a écrit:
- La dernière version stable de Code::Blocs est bien la 8.02 que j'utilise, elle date effectivement un peu. Je vais tâcher d'installer le night build correctement, mais je ne l'utilise à priori pas pour compiler wxWidgets ?!
Tu as raison : Code::Blocks n'est pas utilisé pour compiler wxWidgets. Par contre, tu as peut être installé une version obsolète de MinGW en même temps que Code::Blocks.

vdm a écrit:
- Si j'utilise la ligne de commande plutôt que MSYS, j'ai une erreur immédiate que je vous livre avec la ligne de commande :

Code:

D:\Developpement\wxWidgets-2.8.11\build\msw>mingw32-make.exe -f makefile.gcc BUILD=release UNICODE=1 MONOLITHIC=0 SHARED=1 USE_OPENGL=1 USE_ODBC=1 USE_QA=1 USE_GDIPLUS=0
if exist ..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a
process_begin: CreateProcess(NULL, -c "if exist ..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a", ...) failed.
make (e=2): Le fichier spÚcifiÚ est introuvable.
mingw32-make.exe: *** [..\..\lib\gcc_dll\libwxregexu.a] Error 2
Voici ce que je te conseilles de faire :

- Désinstalle ta version de Code::Blocks ainsi que MinGW / MSYS
- Installe MinGW depuis le site officiel (l'installateur se trouve à cette adresse.
- Assure-toi que l'installation s'est bien déroulée : pour cela, ouvre une fenêtre Ms-Dos, et teste simplement quelques commandes :

Code:

mingw32-make.exe --version
gcc --version
ld --version

- Si tu obtiens une erreur avec l'une des commandes ci-dessus, c'est qu'il faut modifier la variable système PATH afin d'y ajouter le répertoire "bin" de MinGW (si tu as besoin de plus d'infos là dessus, n'hésites pas)
- Installes ensuite une Nightly-Build de Code::Blocks
- Au premier lancement, il devrait détecter MinGW que tu pourras valider comme compilateur par défaut
- Fait déjà un essai (application Win32) pour voir si tout compile correctement
- Re-télécharge les sources wxWidgets (prend la version wxALL, c'est plus sûr)
- Ouvre une fenêtre Ms-Dos, et sans rien toucher au fichier "setup.h", place-toi dans le dossier "build\msw", et lance ta commande de compilation sans les 4 derniers paramètres ( USE_OPENGL=1 USE_ODBC=1 USE_QA=1 USE_GDIPLUS=0 ) pour voir ce que ça donne.
- Si ça foire, reviens nous le dire
- Si ça marche, reviens nous le dire également, et tente en modifiant le "setup.h" et en mettant tous les paramètres dans la ligne de commande.

Bonne chance, et @+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
19-05-2010 22:13:12  Re: Compilation Code::Block + wxWidgets #9
vdm (Nouveau membre)
Inscrit le : 17-05-2010
Messages: 9
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Merci Xaviou pour la longue réponse.

J'édte à nouveau mon message pour apporter des corrections.
Voici là où j'en suis aujourd'hui : bilan mitigé avec la compilation qui se fait correctement dans les cas suivants
-BUILD=debug SHARED=0
-BUILD=debug SHARED=1
-BUILD=release SHARED=0
Mais toujours une erreur quand j'utilise la combinaison de paramètres sur laquelle je m'étais fixé au départ "BUILD=release SHARED=1", lors d'exécution de

Code:

g++ -c -o gcc_mswudll\coredll_graphics.o
Donc en résumé, seule la compilation des DLL release ne fonctionne pas.

Voici la liste des choses qui ont été faites :

1) Mise à jour de MinGW-5.1.6 depuis le site officiel
2) Télélechargé le MS SDK 6.1 qui contient les headers gdiplus (la compilation déconnais car elle me disait que gdiplus.h manquait) que j'ai placé dans le répertoire WXDID/include
3) Desinstallé et ré-installé MSYS
4) Desinstallé C::B 8.02 et installé la Nightly-Build 6088
5) ... Couché très tard une troisième nuit consécutive  ;)

Ce que je n'ai pas changé :
1) Je continue à travailler sous MSYS, avec la même ligne de commande que tu utilises sous l'invite de cmd Windows :

Code:

/d/developpement/wxWidgets-2.8.11/build/msw
$mingw32-make.exe -f makefile.gcc BUILD=release UNICODE=1 MONOLITHIC=0 SHARED=1 VENDOR=vdm USE_OPENGL=1 USE_ODBC=1 USE_QA=1 USE_GDIPLUS=0

et je fais varier BUILD et SHARED.

J'ai dit dans un post précédent que la compilation depuis la fenêtre de cmd Windows s'arrêtait tout de suite, avec visiblement une erreur avec make.l'erreur étant

Code:

make (e=2): Le fichier spÚcifiÚ est introuvable.
Si je fais:

Code:

make --version
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
Incorrect command line argument: --version

Ce qui explique pourquoi le lancement de la compilation ne fonctionne pas dans ce cas,
C'est "simplement" le mauvais make qui est appelé (j'ai Delphi installé). C'est déjà une partie du mystère qui s'éclaircit. J'ai modifié la variable système path, en ajoutant le chemin MSYSDIR\bin AVANT le chemin Delphi. Depuis, j'ai

Code:

C:\>make --version
GNU Make 3.81

C'est le bon make qui est appelé. J'ai re-testé la compilation, mais j'ai la même erreur que précédemment.

Deux questions subsidiaires :
1) j'ai tenté de télécharger les libs 2.8.11 avec l'Installateur de libs 2.8.11 trouvé dans la page téléchargement. Quand je clic sur "Démarrer" le téléchargement des libs, je vois affiché "Téléchargement du paquet "wx2811-sources-headers-Aide-Exemples" avec un débit de l'ordre de 500Ko/s qui s'affiche et la barre de progression qui bouge. Et c'est sans fin (laissé tourner 2h). L'encart Etat des téléchargements reste vierge. J'ai trouvé dans l'un de mes répertoires un fichier appelé wx2811-Sources-Headers-Aide-Exemples.pck qui ne cesse de passer en boucle de 0 à 14Mo environ...

2) Quand on compile avec SHARED=1, le répertoire WXDIR\lib\gcc_dll contient à la fois des .a et des .dll. Pourquoi y a-t-il des .a, peut-on les utiliser ?

Merci encore.
V°°
----------
J'ai installé MinGW-5.1.6 et curieusement le numéro de version de gcc semble plus ancien que celui que j'avais avant:

Code:

C:\>mingw32-make.exe --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
 
C:\>gcc --version
gcc (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
 
C:\>ld --version
GNU ld (GNU Binutils) 2.20

Et j'ai cru comprendre que la dernière version est gcc-4.5.0-1 ???
----------

Bye
V°°
----------
--------------------------------------------------
Essai de compilation avec Visual C++ 2005 Express.
--------------------------------------------------

J'ai suivi scrupuleusement la procédure décrite dans le tutoriel de Xaviou.
Ca plante immédiatement,

Code:

D:\Developpement\wxWidgets-2.8.11\build\msw>nmake.exe -f makefile.vc BUILD=debug MONOLITHIC=0 UNICODE=1 SHARED=0 USE_OPENGL=1 USE_ODBC=1 USE_QA=1 USE_GDIPLUS=1
 
Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.
 
        cl /c /nologo /TC /Fovc_mswud\wxregex_regcomp.obj /MDd /DWIN32  /Zi /Fd..\..\lib\vc_lib\wxregexud.pdb  /D_DEBUG /Od  /I..\..\include  /I..\..\lib\vc_lib\mswud /D__WXMSW__  /D_UNICODE    ..\..\src\regex\regcomp.c
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\Bin\cl.EXE"' : return code '0xc0000135'
Stop.

Maintenant, si je lance la solution wx.dsw et que je génère la solution, j'ai également une erreur, plus explicite :

Code:

------ Début de la génération : Projet : xrc, Configuration : Unicode Release Win32 ------
Compilation en cours...
dummy.cpp
..\..\include\wx/msw/wrapwin.h(51) : fatal error C1083: Impossible d'ouvrir le fichier include : 'windows.h' : No such file or directory
 

Remarque : le fichier windows.h est bien inclu dans le fichier wrapwin.h, qui est lui même inclu dans la plupart des librairies (mais pas toutes, certaines compilent individuellement).
Le problème est que le fameux windows.h est inexistant dans l'arborescence wxWidgets :/.

Mais pourquoi ça marche pas chez moi comme chez tout le monde :rolleyes:  ?

V°°

Dernière modification par vdm (20-05-2010 22:31:30)

21-05-2010 12:36:41  Re: Compilation Code::Block + wxWidgets #10
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Pour VS2005, il ne faut pas passer par une fenêtre Ms-Dos classique, mais aller la chercher dans les entrées du menu démarrer créé lors de l'installation (de ce fait, il va automatiquement définir les chemins pour les fichiers include et autres).

En ce qui concerne "windows.h", ce n'est pas un fichier wxWidgets, mais il fait partie des headers "basiques" à utiliser lorsque l'on fait une application Windows. Visual C++ possède le sien, et MinGW également.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
21-05-2010 22:08:25  Re: Compilation Code::Block + wxWidgets #11
vdm (Nouveau membre)
Inscrit le : 17-05-2010
Messages: 9
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Bonsoir,

J'ai bien utilisé le lien dans le menu démarrer.
Ja'azi aussi un windows.h dans mingwDIR/include, mais pas dans VisualC++/include ni dans le SDK MS.
Peux-tu éventuellement me l'envoyer ?

Merci
V°°
21-05-2010 23:10:48  Re: Compilation Code::Block + wxWidgets #12
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Si tu as installé le SDK Ms, il y est forcément.
Il y a un répertoire spécifique pour le SDK dans "Program Files" (qui n'est pas le sous-dossier "SDK" de Visual Studio)
Chez moi, Windows.h se trouve dans C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
26-05-2010 20:37:34  Re: Compilation Code::Block + wxWidgets #13
vdm (Nouveau membre)
Inscrit le : 17-05-2010
Messages: 9
Snippets: 0
Tutoriels: 0
Site web
Hors ligne
Oh, ouiiii ! C'était simple, mais je cherchais ailleurs... Merci pour cette bonne info !

Bye.
V°°
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Compilation - Installation - Réglages IDE
» Compilation Code::Block + wxWidgets