IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Code::Blocks Discussion :

code::blocks et wxWidget 2.8


Sujet :

Code::Blocks

  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 10
    Par d�faut code::blocks et wxWidget 2.8
    Bonjour,

    Ca fait donc � peu pr�s deux semaines que j'essaye d'installer wxWidget 2.8 sous code::blocks. J'ai essay� moult solutions, qui n'ont pas abouties.

    A l'heure actuelle j'ai l'erreur suivante cannot find -lwxmsw. Je ne comprend pas bien les erreurs de link en r�gle g�n�ral et celle ci ne fait pas exception.

    Pour en arriver l�, j'ai t�l�charg� et compil� en release la lib wxWidget 2.8 puis sous code::blocks, j'ai mis dans settings->compiler->directories les dossiers include et lib de wxWidget. Enfin j'ai ajout� les lib dans les options linker. J'ai cr�� un projet en wxwidget et je l'ai compil�, le compilateur me dit alors "cannot find -lwxmsw".

    Voila, je sais pas trop si vous comprenez bien ce que j'ai fait et je suis clair. En fait, si vous connaissez un lien vers un site qui explique comment installer la lib wxWidget 2.8 sous code::blocks de A � Z ne vous fatiguez pas � comprendre mon probl�me... donnez moi le lien

    Mais bon, j'ai eu beau chercher... j'ai peut-�tre mal chercher, mais j'ai rien trouv�... dsl

    Si qq1 a une id�e pour mon probl�me je lui en serais tr�s reconnaissant. Je pense que le vrai probl�me c'est que je ne connais pas grand chose sur la signification de la ligne de commande de la compilation (gcc -o main.cpp etc etc...). Je suis preneur pour un tutoriel compilateurs.

    Bon, je parle trop ... Merci � ceux qui veulent bien m'aider.

  2. #2
    R�dacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de syst�me d�information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Architecte de syst�me d�information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par d�faut
    Bien le bonjour,

    Il faut que tu ailles voir le nom de la biblioth�que statique correspondant � la version de wxwidgets que tu as install�e.

    -lwxmsw signifie que le compilo ira chercher un fichier nomm� libwxmsw.a. Regarde si ce fichier existe bien et s'il a bien ce nom l�. Renomme-le ou change l'option d'�dition de liens en cons�quence.

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 10
    Par d�faut
    Merci beaucoup pour cette r�ponse.

    Alors le gros probl�me c'est que pour cr�er mon projet j'ai pris le template wxWidget de code::blocks qui ne marche que si wxWidget est install� sous c:\wxWidget, ce n'est pas mon cas.

    J'aurais donc aim� savoir si il n'y a pas un moyen de changer ce r�pertoire dans les options du compilateur, j'ai cherch� mais rien trouv�. De plus, le probl�me est que j'ai la version 2.8 de wxWidget, la libwxmsw s'appelle libwxmsw28 (pour la version 2.8). Dans Duild->Compiler Settings->other options, il y avait �crit -libwxmsw je l'ai remplac� par -libwxmsw... �a n'a rien chang�...

    je vous montre le log :

    Project : wxWidgets application
    Compiler : GNU GCC Compiler (called directly)
    Directory : D:\Mes documents\Guillaume\Dev\Widget\
    --------------------------------------------------------------------------------
    Switching to target: default
    Linking executable: D:\Mes documents\Guillaume\Dev\Widget\wxWidgets.exe
    C:\Program Files\CodeBlocks\bin\..\lib\gcc\mingw32\3.4.4\..\..\..\..\mingw32\bin\ld.exe: cannot find -lwxmsw
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    1 errors, 0 warnings

    voila, je vais peut-etre essayer de r�installer la lib correctement, je suis pas s�r d'avoir pris les bonnes options lors de l'install

    Si toutefois tu as le temps de m'expliquer comment je peux, � partir de l'nstalleur code::blocks et wxWidget, cr�er un projet compilable, ce serait g�nial... bien s�r, on a pas tous que �a � faire .

    En tout cas, merci pour ta r�ponse...

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    ben si ta librairie s'appel libwxmsw28.a il faut que tu link (-l) avec ce nom l� c'est � dire:
    -llibwxmsw28.a ou -lwxmsw28
    mais c'est bizard, moi quand je compile wx j'ai plusieurs lib qui commencent leur nom en libwxmsw28_***.a et pas seulement libwxmsw28.a . Tu as compil� en statique?
    si c'est le cas pour compiler le projet le plus basic tu as besoin de 3 libs (hormis celles de la win32):
    libwxmsw28_core.a -> -lwxmsw28_core
    libwxbase.a -> -lwxbase
    libwxmsw28_adv.a -> -lwxmsw28_adv

    je met un .zip avec la mise en place d'un projet minimaliste...
    Fichiers attach�s Fichiers attach�s

  5. #5
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 10
    Par d�faut
    Merci beaucoup pour tes indications...

    Cependant je suis navr�, mais �a compile toujours pas... surtout que je n'ai pas les m�mes lib que toi. moi j'ai les lib suivantes :

    - libwxexpat.a
    - libwxjpeg.a
    - libwxmsw28u.a
    - libwxpng.a
    - libwxregexu.a
    - libwxtiff.a
    - libwxzlib.a

    Sans compter la DLL : wxmsw28u_gcc_custom.dll

    toutes situ�es dans C:\CodeBlocks\wxWidgets-2.8.0\lib\gcc_dll. Apr�s compilation. Pour info, la ligne de commande que j'ai faite pour compiler la librairie est la suivante :

    mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release

    C'�tait peut-�tre pas �a... ensuite j'ai ouvert ton projet minimaliste sous Code::Blocks et il n'a pas voulu compil� (pas cool). Il m'a marqu� cannot find -lwxmsw28_core Logique puisque la lib n'est pas la bonne.

    J'ai donc mis les dossiers include et lib n�cessaires et les lib ainsi que les -lwxetc... et il me marque maintenant :

    Linking executable: D:\Mes documents\Guillaume\Dev\Proj_Widget\Win32GUI.exe
    Info: resolving wxAppConsole::ms_appInstance by linking to __imp___ZN12wxAppConsole14ms_appInstanceE (auto-import)
    Info: resolving wxStringBase::npos by linking to __imp___ZN12wxStringBase4nposE (auto-import)
    Info

    Donc voila, je comprend pas encore bien tout �a... Si vous avez une id�e...

    Pour information, j'ai quand m�me r�ussi � cr�er un projet wxWidget v2.6.3 sur DevCpp avec le dev packs et �a marche bien... mais bon, j'�tais parti sur wxWidget v2.8 et puis surtout, j'apprend des choses qui pourront m'�tre utiles � l'avenir dans l'installation d'autres biblioth�ques, si vous �tes toujours OK pour m'aider , je suis donc toujours preneur

    A bientot et merci beaucoup pour vos conseils.
    J'ai encore la foi, j'y arriverai... aujourd'hui ou dans trois ans

  6. #6
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 10
    Par d�faut
    Rectification du mail pr�c�dent... En fait, les options de compilation de la biblioth�que n'�tait pas vraiment les bons.

    J'ai recompil� la lib en Release avec un mingw32-make -f makefile.gcc BUILD=release et du coup j'ai les bonnes lib...

    Il compile presque, une petite erreur subsiste :

    Linking executable: bin\testwx.exe
    C:\CodeBlocks\lib/libmingw32.a(main.o):main.c.text+0x106): undefined reference to `WinMain@16'

    Je ne sais pas � quoi c'est d�, je cherche encore... j'y arriverai...

    A bientot

  7. #7
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    compil avec SHARED=0 pour tester en static...
    et aussi n'oublis pas de mettre le setup.h se trouvant dans le dossier de lib apres compilation dans le dossier wx

  8. #8
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 10
    Par d�faut
    Bonjour,

    Encore une fois merci... et encore une fois, d�sol�, �a ne marche pas...

    j'aimerais bien savoir comment tu as fait dans ton projet pour inclure la commande -lwxmsw28 car je ne l'ai pas trouv� ni dans le menu Build->Compiler Options, ni dans Settings->Compiler.

    On dirait que c'est tout ce qu'il me manque pour compiler.

    Sinon, moi je cr�e un projet Win32GUI et apr�s dans les Compiler options je mets les path et les libs n�cessaires. J'ai pens� aussi � cr�er un projet Widget plutot que Win32GUI. Mais celui-ci ne marche qu'avec la version 2.6.3 de wxWidget et si il est bien situ� dans le bon r�pertoire.

    Donc voila, j'aimerais bien savoir comment toi tu inclues la driective -lwxmsw28 pour que je la change en -lwxmsw28d et que �a compile, ce serait chouette.

    Merci encore, j'esp�re que tu n'as pas l'impression de perdre ton temps... et d�sol� de pas mieux comprendre toutes ces choses

    A bientot j'esp�re... Je tiens bon

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    ne t'inquietes pas c'est simple...:
    tu vas dans "Project" � cot� de Build puis tu fais:
    Project -> Build Options puis tu as une fenetre "Project build options" qui s'ouvre et l� dedans tu vas sp�cifier tout les options de compilation (chemin vers les includes, vers les lib, les libs avec lesquels compiler etc...)
    Il faut savoir que tu peux creer plusieurs cibles de compilation, typiquement tu peux creer la cible "release" et la cible "debug", et dans ces cibles tu peux sp�cifier avec quelles libs tu vas compiler, il va de soit que si tu veux les information de debuggage il fautr que tu utilises les version libwx..d.a
    Personnelement je ne compile jamais en debug, surtout pour du developpement GUI.
    le prjoet que je t'ai envoy� a que la cible release de prete, sachant que dans celle ci je ne fais rien de particulier !!! c'est dans le cible principale testwx que je d�finis les chemin vers les include/lib (c:\wx280) et les librairies avec lesquelles linker (-lwx...)

    Dans Compiler settings il y a divers options de compilations (pas important pour le moment)

    Dans Linker settings je dis avec quelles librairies je souhaite compiler tu verras toute la famille de wxmsw28_.. et les librairies de l'API win32 qui sont necessaires � wxwidgets. (Attention !!!! l'ordre des librairies a une importance) si lib1 a besoin de lib2 qui a besoin de lib3 il faut les mettre dans l'ordre lib1 lib2 lib3. Tu remarqueras que je ne met pas le nom complet de la librairie (libwxmsw....a) mais juste wxmsw28.. car le compilateur mingw va automatiquement faire la completion avec lib et .a

    Dans Search Directories il y a les paths vers les includes et lib c'est l� que tu vas voir c:\wx280

    le reste tu n'en n'as pas besoin....

    si tu as encore des probl�me tu peux me mp je te donnerai mon msn

  10. #10
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 10
    Par d�faut Pour ceux qui ont le m�me probl�me
    J'ai enfin r�ussi, je ferme donc le topic.

    L'int�gralit� des op�rations � effectuer n'est effectivement pas bien compliqu�e, mais il faut �tre renseign�.

    Pour ceux qui partent de rien, commencez par t�l�charger la derni�re version de code::blocks (avec Mingw) et la lib wxWidget 2.8 sur les sites officiels (suffit de taper ces noms dans google, on arrive tout de suite sur les sites officiels) et installez les.

    Vient ensuite la compilation de la lib wxWidget. pour cela, mettez le path du dossier bin de code::blocks dans les variables d'environnement utilisateurs

    nom de la variable : path
    valeur de la variable : "......\Code::Blocks\bin"

    ensuite, dans l'invite de commande ms-dos, placez vous dans le dossier de wxWidget contenant le makefile.gcc (c:\wxWidget-2.8.0\build\msw dans la plupart des cas) et tapez la commande suivante :

    mingw32-make -f makefile.gcc SHARED=0 BUILD=release. (j'ai pas bien compris le shared=0 mais vous verrez, �a marche )

    L'op�ration de compilation peut prendre quelques dizaine de minutes.

    Une fois l'op�ration termin�e, vous devriez avoir dans c:\wxWidget-2.8.0\lib\gcc_lib une quinzaine de librairies entre autre libwxmsw28_core.a libwxmsw28_adv.a libwxbase28.a. Si ces librairies ne sont pas dans ce dossier, posez vous des questions -> certainement une erreur � la compilation.

    Ensuite t�l�chargez le petit exemple d'appli testwx.zip fourni plus haut par notre cher confr�re reptils et ouvrez le fichier testwx.cbp qu'il contient.

    Sous C::B vous devez ensuite ouvrir dans menu>Project->Build Options onglet Directories changer les chemins d'include et lib pour qu'� la compilation, vous n'ayez pas d'erreurs de link. La derni�re petite chose � faire qui m'a value une grosse prise de t�te est d'aller dans menu>Project->Properties onglet targets, cocher les fichiers que vous voulez compiler � savoir le main.cpp (le seul fichier cpp du projet).

    voila, normalement, ca devrait compiler... Si c'est pas le cas, une seul r�ponse... Google !!!

    Pour la suite des op�rations ya pleins de tutoriaux et exemples de code sur internet vous permettant assez facilement de compiler des applications graphiques bateaux, notamment sur le wiki wxWidget : http://fr.wikibooks.org/wiki/Interfa..._avec_wxWidget

  11. #11
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    le shared=0 c'est pour que la libn soit compil�e en statique (.a) et pas en dynamique (dll)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [WxWidgets] installation code:blocks
    Par maminova77 dans le forum Code::Blocks
    R�ponses: 16
    Dernier message: 25/01/2011, 09h15
  2. Pb de compilation d'un projet wxWidgets sous Code::Blocks
    Par fild'air dans le forum Code::Blocks
    R�ponses: 0
    Dernier message: 07/01/2009, 22h49
  3. [WxWidgets] installation code:blocks erreur au make
    Par grabriel dans le forum Code::Blocks
    R�ponses: 1
    Dernier message: 17/04/2008, 18h10
  4. Utiliser les wxWidgets sous code::block
    Par cobra85 dans le forum Code::Blocks
    R�ponses: 1
    Dernier message: 07/12/2007, 22h30
  5. Installer wxWidgets avec Code::Blocks
    Par Shugo78 dans le forum Code::Blocks
    R�ponses: 3
    Dernier message: 25/06/2007, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo