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

Eclipse C & C++ Discussion :

Compiler wxwidgets sous eclipse c++


Sujet :

Eclipse C & C++

  1. #1
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut Compiler wxwidgets sous eclipse c++
    Voil�, jusqu'ici on codait sous Visual Studio ou je bosse et depuis peu, on a d�cid� de passer � Eclipse c++ et sous Linux en plus.

    On a donc install� une kubuntu sans soucis.
    Ensuite on a install� eclipse europa sans trop de soucis non plus.
    Puis on a ajout� le plugin c++ � eclipse sans trop de probl�me.

    Et on s'est lanc� dans notre premier prog c++ sous eclipse, un helloworld (hello me) version qui s'affiche dans une wxMessageBox.

    Alors voil�, mes probl�mes c'est comment configurer eclipse/c++ pour les link et pour le reste? Et plus particuli�rement pour wxWidgets?

    Connaissez-vous une doc compl�te � ce sujet?

    Je place le code de cet hello me �a parlera d�j� plus:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #include <iostream>
    #include <wx/wx.h>
    using namespace std;
     
    class myApp :
    	public wxApp
    {
    	bool	OnInit();
    	DECLARE_EVENT_TABLE()
    };
     
    IMPLEMENT_APP(myApp)
    BEGIN_EVENT_TABLE(myApp, wxApp)
    END_EVENT_TABLE()
     
    	bool myApp::OnInit(){
    		wxString toto = wxT("!!!Hello me!!!");
    		wxMessageBox(toto);
    		return true;
    		}
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  2. #2
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Bon d�j�, j'ai trouv� dans project->properties->C/C++ build->settings de quoi configurer gcc

    Donc on a modifi� comme suit:
    GCC C++ compiler on a mis � "command line pattern" la valeur :"${COMMAND} `wx-config --cxxflags` ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"
    GCC C++ Linker la valeur: "${COMMAND} `wx-config --libs` ${FLAGS} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}"

    Et l� c'est bon, on compile notre hello me.

    Par contre, l'�tape d'apr�s, je r�cup�re l'un de nos projets fait sous visual qui compile tr�s bien sous visual.
    Et j'essaye de le compiler.

    Et l�, arf, on aurait soi-disant des d�clarations multiples.
    Donc vu que j'ai pas ces erreurs sous visual, je pense que ce sont de faux messages d'erreur d�s � un pb de config.

    Quelqu'un y voit clair?
    Merci pour toute aide d'avance.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  3. #3
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    Salut,

    Eclipse cdt ne permet de compiler qu'un seul binaire par projet. On compile rarement un seul binaire par projet... je te conseille donc de g�rer tes compilations � la main. Perso j'utilise cmake, mais tu peut aussi bien �crire des makefiles standard ou encore du scons. Je peut t'expliquer comment utiliser ces outils sans avoir � sortir de l'interface d'eclipse si ca t'interesse.

    a+

  4. #4
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Avec plaisir.

    J'attends ton post avec impatience.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  5. #5
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    en fait la solution la plus basique c'est de creer un projet standard (non managed), d'�diter un makefile, et puis d'utiliser la fenetre "make targets" pour appeler les cibles que tu as cr�� dans ton makefile

    si tu utilise cmake ou scons tu peut faire la meme chose, sauf qu'il faudra faire un "cmake .." ou un "scons ." plutot que "make", donc soit modifier l'executable par d�faut dans "make target", soit les lancer avec le bouton "external tools" d'eclipse.

    finalement si tu utilise cmake, dans la derni�re version, il y a un g�n�rateur eclipse cdt, assez pratique.
    http://www.cmake.org/Wiki/Eclipse_CDT4_Generator

    voil�, h�site pas si t'as d'autres questions

  6. #6
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Ok, donc les joies du make sous Eclipse.

    Ca a l'air plut�t simple comme �a.
    Malheureusement �a ne marche pas du premier coup.
    Ce serait trop beau.

    Donc, je suis parti sur notre projet, je n'en ai pas cr�� un nouveau.
    Alors la suite de mes actions:
    Une fois que j'ai s�lectionn� mon projet, je clique sur project->make target->create
    je nomme mon make: filemanager dans target name (au pasage, � quoi sert le champ Make target juste en dessous) et je clique sur create.

    Ensuite, je vais sur make target->build

    J'ai un gros paquet de lignes dans ma console qui finit par une erreur.
    J'ai 3 .cpp et j'obtiens trois .o.

    J'ose pas mettre l'int�gralit� du message de la console donc un bref r�sum�.
    Demandez si besoin de plus

    Building file: ../src/FileManager.cpp
    Invoking: GCC C++ Compiler
    ....
    Finished building: ../src/FileManager.cpp

    Building file: ../src/Module_FileManager.cpp
    Invoking: GCC C++ Compiler
    ....
    Finished building: ../src/Module_FileManager.cpp

    Building file: ../src/ZipFile.cpp
    Invoking: GCC C++ Compiler
    ....
    Finished building: ../src/ZipFile.cpp

    Building target: Module_FileManager
    Invoking: GCC C++ Linker
    ....
    collect2: ld returned 1 exit status
    make: *** [Module_FileManager] Error 1
    PS: pas eu le temps de m'y mettre plus t�t. J'�tais sur un pb de socket et un autre de css en m�me temps. Merci pour l'aide en tout cas.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  7. #7
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    Citation Envoy� par natoine Voir le message
    Ok, donc les joies du make sous Eclipse.
    lol, l� on est d'accord que tu utilise le makefile que tu as �crit, eclipse n'y est pour rien si ca marche pas

    y'a claire un probl�me � l'�dition de liens, essaye d'afficher ta commande de compilation pour voir ce qui cloche.

    "Make target" si tu ne le remplis pas, par d�faut il va faire la premi�re target qu'il trouve ("make all" par d�faut). si tu veut compiler filemanager il faut remplir ce champ avec "filemanager".

  8. #8
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    hum hum

    lol, l� on est d'accord que tu utilise le makefile que tu as �crit
    J'utilise le makefile g�n�r� par eclipse.
    Je me doute bien qu'il y a une �tape de plus mais �a avait l'air magique sur le coup.
    Apr�s Make j'en ai fait il y a longtemps...
    Et je dois dire que celui g�n�r� par eclipse m'a sembl� bien bal�ze.

    Donc ma commande de compil... elle vient du makefile g�n�r� par eclipse, enfin je crois:

    g++ `wx-config --libs` -o"Module_FileManager" $(OBJS) $(USER_OBJS) $(LIBS)
    Qui donc tente de compiler tout ce qui est dans le projet Module_FileManager, � savoir 3 .cpp.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  9. #9
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    ah ok excuse j'avais pas compris. par contre tu as rat� une �tape en effet, car dans mon avant dernier message je te disais que c'�tait beaucoup plus simple d'�crire des makefiles pour g�rer ses binaires que d'utiliser le gestionnaire inclus dans eclipse (si make te rebute, utilise cmake ou scons). je te laisse relire la discussion et je suis dispo si t'as des questions.

  10. #10
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Bon alors l�, je viens de d�couvrir un truc de malade:

    clic droit sur mon module -> properties -> C/C++ builds -> Settings -> Build artifact

    Et l�, je mets Artifact type: Static Library.

    Ben oui parce qu'en fait c'est surtout de �a dont j'ai besoin pour l'instant faire de mes modules et de mes composants des librairies.
    Bon ok j'ai pas �t� clair l�-dessus, mais je viens � peine de comprendre le truc.
    On porte notre appli windows vers Linux et j'ai pas mal de choses � apprendre.

    Du coup, eclipse compile sans soucis dans ces conditions.
    Je vais pouvoir faire de m�me pour tous les modules et composants de l'appli

    Bon je sens que y a quand m�me des choses qui m'�chappent et avec tout �a je ne me suis pas vraiment replong� sur les makefile.

    Merci namelouk pour ton aide.
    Je reviendrai s�rement bient�t sur ce topic non r�solu encore.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  11. #11
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    ok tant mieux si ca marche comme ca, mais moi je trouve qd meme que 1 librairie ou 1 executable par projet c'est vite limitant
    a+

  12. #12
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Ca je suis bien d'accord, surtout qu'au final, je dois avoir une bonne dizaine de lib � compiler avant de compiler l'ex�cutable de notre appli.

    Bon je me repenche l�-dessus lundi.
    Objectif: automatiser la compil de toutes les lib et de l'executable via makefile.
    Soit j'apprends � bien me servir du make de eclipse soit je me replonge dans les makefile et je fais � la mano.

    Vivement Lundi tiens.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  13. #13
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    soit tu utilise cmake, qui est simple, portable et ultra puissant.

  14. #14
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Alors va pour cmake.
    C'est install�.

    Maintenant j'apprends � l'utiliser.
    http://www.cmake.org/HTML/Documentation.html
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  15. #15
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    cool.

    les quelques commandes don't t'as besoin pour d�marrer ton projet c'est :

    add_executable
    add_library

    target_link_libraries

    include_directories
    link_directories

    et au cas o� tu as besoin de quelques variables d'environnement, cf

    http://www.cmake.org/Wiki/CMake_Useful_Variables

  16. #16
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Bon je crois avoir compris mais j'ai un peu du mal � me lancer.
    Je pr�cise que je suis en ligne de commandes.
    Dis moi si je me trompe.

    Donc tout d'abord, je cr�e un fichier CMakeLists.txt � la racine de mon projet.
    Je pr�cise les sous-r�pertoires et cmake cr�e un CMakeLists.txt dans chacun de ces r�pertoires.

    Ensuite, je lance cmake -i � la racine de mon projet.
    Et l�, j'ai une suite de questions/r�ponses qui me guident pour remplir ces fichiers.

    Bon de toute fa�on je vais tester.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  17. #17
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    il ne faut pas lancer "cmake -i" mais "cmake /chemin_de_ton_projet"

    et il faut le faire si possible dans un dossier � part, pour pouvoir supprimer les fichiers g�n�r�s pas cmake (typiquement les makefiles)

  18. #18
    Membre �clair�
    Avatar de natoine
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    D�cembre 2007
    Messages
    393
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 393
    Par d�faut
    Bon on va faire du �tape par �tape parce que l� je mouline un peu...

    Donc mon projet se d�compose de la fa�on suivante:
    Un dossier appli avec un appli.cpp et un appli.h
    appli.cpp et appli.h ont de nombreuses d�pendances includes .... .h
    Ces fichiers se trouvent dans un dossier Composants ou dans un dossier Modules.
    Chaque composant et chaque module ayant son propre dossier.
    Donc pour les .cpp des .h r�f�renc�s, on aimerait faire des lib, une lib par composant et une lib par module.

    En fait j'aurai bien besoin d'un exemple. http://www.cmake.org/HTML/Examples.html y a celui-l� mais je comprends pas vraiment comment on proc�de.
    www.natoine.fr
    natoine.developpez.com
    Principalement du Java avec un soup�on de r�seaux sociaux.

  19. #19
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    +
    +-Appli
    +-Composant1
    +-Composant2


    le cmakelist de la racine doit ressembler � ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    include_directories( Composant1 )
    include_directories( Composant2 )
    include_directories( Appli )# ca depend si tu as des .h dans ce dossier
     
    add_subdirectory( Composant1 )
    add_subdirectory( Composant2 )
    add_subdirectory( Appli )
    - les cmakelists de composant1 et composant2 doivent ressembler � ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    add_library(composant1 source1.cpp source2.cpp)
    target_link_library(composant1 pthread) # par exemple
    le cmakelist d'Appli doit ressembler � ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    add_executable(exec_name appli.cpp)
    target_link_libraries(exec_name composant1 composant2 )

Discussions similaires

  1. Compilation Maven sous Eclipse
    Par Mako 5013 dans le forum Maven
    R�ponses: 5
    Dernier message: 22/03/2013, 14h25
  2. La compilation automatique sous Eclipse ne marche plus
    Par specsy dans le forum Eclipse Java
    R�ponses: 4
    Dernier message: 14/09/2008, 14h01
  3. Compilation C++ sous Eclipse
    Par kimlee dans le forum C++
    R�ponses: 2
    Dernier message: 11/07/2008, 09h45
  4. Probl�me de compilation wxwidgets sous Linux
    Par Zoloom dans le forum wxWidgets
    R�ponses: 0
    Dernier message: 12/05/2008, 01h50
  5. compilation prog avec wxwidget sous eclipse
    Par grabriel dans le forum Eclipse C & C++
    R�ponses: 7
    Dernier message: 08/04/2008, 15h39

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