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

GTK+ Discussion :

[gtkmm] MingGW Developper Studio comment y arriver?


Sujet :

GTK+

  1. #1
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut [gtkmm] MingGW Developper Studio comment y arriver?
    Bonsoir,
    Je cherche a installer cet environnement sur une machine sous win2000.

    Alors voilà exactement ce que j'ai fait.
    D'abord j'ai téléchargé gtk+-2.8.18-setup-1.exe sur le site de GIMP et je l'ai installé.
    Ensuite j'ai téléchargé gtkmm-devel-2.8.8-2.exe que j'ai aussi installé.
    A ce stade, je peux lancer le programme démo de gtkmm ainsi que Gideon.

    Puis j'ai installé MinGWStudioFullSetup-2.05.exe

    Enfin dans les options de l'ide j'ai rajouté les répertoires menant aux includes des bibliothèques fraichement installées.
    ( C:\Program Files\Common Files\GTK\2.0\include\gtkmm-2.4 )

    J'en suis là.

    Quand j'essai de compiler un simple hello world, je me retrouve avec des centaines d'erreurs. Que je suppose du à des arguments manquants (comme des fichiers librairies à lier) lors de la compilation et édition de lien.

    Seulement le fichier text accompagnant gtkmm parle d'un certain pkg-config qui doit fournir les listes des fichiers et répertoire à ajouter. Mais voilà, ce programme n'est nulle part.

    Si quelqu'un peut m'aider et m'indiquer ce qui manque.

    Merci

  2. #2
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    J'ai rajouté des lignes d'includes dans la configuration de l'ide.
    à savoir:
    C:\Program Files\Common Files\GTK\2.0\include\glibmm-2.4
    C:\Program Files\Common Files\GTK\2.0\include\gdkmm-2.4

    Et maintenant je n'ai plus qu'une seule erreur.
    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "gtkmm.h"
     
    int main(int argc, char *argv[])
    {
        Gtk::Main kit(argc, argv);
     
        Gtk::Window window;
     
        Gtk::Main::run(window);
     
        return 0;
    }
    et voici l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Linking...
    C:\MinGWStudio\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to `WinMain@16'
    collect2: ld returned 1 exit status
    une idée??

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    pour pkg-config c'est un utilitaire Linux qui permet de connaitre les options de gtk, il doit être livré avec cygwin (mingw c'est moins sûr) mais tu peux t'en passer, suffit de connaitre les chemins des fichiers d'en tête et des bibliothèques pour les ajouter.

    Pour ton erreur, tu as dû faire une erreur sur le type de projet : Que signifie l'erreur : unresolved external symbol _WinMain@16 ?.

  4. #4
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    Merci
    Même si j'étais pratiquement sur d'avoir choisit un projet console, j'ai repris pour en avoir le coeur net.
    Je me suis aussi lancé dans l'inclusion de pratiquement tous les includes possibles.
    En fait j'ai noté que la fonction rebuild ne faisait rien. faire un clean avant n'avait pas plus d'effet. Bien qu'il y ait eu erreur à la compilation, il conserve le .o généré et tente systématiquement l'édition de lien. Seule solution, toucher le code.
    J'ai constaté que les premières erreurs de compilation qui apparaissaient alors étaient des .h non trouvés.

    Maintenant il compile correctement, mais à l'édition de liens j'obtiens ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    --------------------Configuration: TrueHello - Debug--------------------
    Linking...
    C:\MinGWStudio\Templates\TrueHello\Debug\Hello.o: In function `main':
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:5: undefined reference to `Gtk::Main::Main(int&, char**&, bool)'
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:7: undefined reference to `Gtk::Window::Window(Gtk::WindowType)'
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:9: undefined reference to `Gtk::Main::run(Gtk::Window&)'
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:11: undefined reference to `Gtk::Window::~Window()'
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:11: undefined reference to `Gtk::Main::~Main()'
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:11: undefined reference to `Gtk::Window::~Window()'
    C:\MinGWStudio\Templates\TrueHello\Hello.cpp:11: undefined reference to `Gtk::Main::~Main()'
    collect2: ld returned 1 exit status
     
    TrueHello.exe - 7 error(s), 0 warning(s)
    j'ai supposé qu'il y avait des librairies manquantes dans le linker. Alors comme ça je lui ai passé gtkmm-2.4.lib mais... il ne la trouve pas!!
    Alors que le dossier est bien indiqué dans la config de l'ide.

    j'obtiens précisément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    --------------------Configuration: TrueHello - Debug--------------------
    Linking...
    C:\MinGWStudio\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lgtkmm-2.4.lib
    collect2: ld returned 1 exit status
     
    TrueHello.exe - 1 error(s), 0 warning(s)
    une idée?

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Sunsawe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    --------------------Configuration: TrueHello - Debug--------------------
    Linking...
    C:\MinGWStudio\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lgtkmm-2.4.lib
    collect2: ld returned 1 exit status
     
    TrueHello.exe - 1 error(s), 0 warning(s)
    une idée?
    Oui apparemment tu ajoute l'option :
    Il faut simplement ajouter :
    Normalement. Dans ce cas ld devrait chercher le fichier libgtkmm-2.4.lib dans les répertoires standards et aussi ceux spécifié par l'option -L

  6. #6
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    OOUIII ça marche!!
    Merci
    J'ai retiré le .lib de la librairie et ça marche!!

    Enfin, je vais pouvoir essayer de faire plus compliqué maintenant.

    Mais juste pour savoir, dans l'ide, y'a des types de project déjà définit.
    Du genre console win32 ou app gtk+ ou encore app wxWidget...

    Tu ne saurais pas par hasard comment je pourrai en définir un moi même?

    Merci encore

  7. #7
    Membre actif Avatar de Jean_Benoit
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 499
    Points : 234
    Points
    234
    Par défaut
    Je ne connais pas l'IDE Mingw, je débute avec Code::Blocks.
    D'abord j'ai installé GTK(en C), j'ai eu l'icône au lancement d'un nouveau projet.
    Ensuite j'ai un peu bidouillé pour installer GTK++.
    à ce moment je suis allé sous c:\program files\codeblocks\share\\\templates
    j'ai trié la liste des fichiers sur les noms, j'ai copié tout ce qui existait en GTK sous GTKmm.
    Ensuite j'ai modifié le cbp, les .cpp grâce à toi d'ailleurs
    J'ai aussi modifié le logo GTK sous Paint j'ai ajouté C++.

    Voilà mon blog où j'ai affiché le répertoire codeblocks\\\templates:

    http://lafalaise.over-blog.com/

    (Parce que j'arrive pas à renseigner le champ "URL" du bouton Images.)

    J'ai viré tout le code de Main.cpp, j'ai remplacé par "Cout << "Hello World \n";
    Et ça a compilé et linké complètement clean en moins de 2 secondes, même pas un warning.
    Maintenant j'ai GTK++ en icône dans la fenêtre Code::Blocks nouveaux projets.
    Merci à toi et aux DevNautes.fr

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/03/2010, 14h32
  2. Réponses: 2
    Dernier message: 02/04/2009, 15h10
  3. [Aide] Comment tu arrives à épargner de l’argent ?
    Par layouni dans le forum La taverne du Club : Humour et divers
    Réponses: 50
    Dernier message: 19/07/2006, 16h21
  4. Réponses: 1
    Dernier message: 28/06/2006, 12h13
  5. [info ide] mingw developper studio
    Par heinquoi dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 29/07/2004, 17h02

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