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

C++ Discussion :

Compilation de plusieurs fichiers (Qt Creator, Windows)


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2022
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2022
    Messages : 34
    Points : 28
    Points
    28
    Par défaut Compilation de plusieurs fichiers (Qt Creator, Windows)
    Bonjour,

    Je travaille en C++ avec Qt Creator sous Windows et j'essaie de compiler plusieurs fichiers.

    Voici une partie du code :
    - dans le main.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include "../Graph/mainwindow.h"
    #include "main.h"
    ...
    void toto()
    {
      List<real>  tata = List<real>(3);
     
      cout << tata[0] << tata[1] << tata[2] << endl;
    }
    - dans le mainwindow.cpp :
    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
     
    #include "ui_mainwindow.h"
    #include "mainwindow.h"
    ...
    template <class T>
    List<T>::List(ent aSize)
    {
      assert(aSize >= 0);
      _size = aSize;
      if (_size)
        _list = new T[aSize];
      else
        _list = (T*)0;
      for (ent i = 0 ; i < _size ; ++i)
        _list[i] = (T)0;
    }
    ...
    - dans le main.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include "../Graph/mainwindow.h"
    ...
    - dans le mainwindow.h :
    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
     
    // Aucun #include perso
    ...
    typedef long long int     ent;
    typedef long double       real;
    template <class T>
    class List
    {
      public :
        T*        _list;
        ent       _size;
      public :
                   List      (ent              aSize          = 0              )      ;
    ...
    };
    - dans le Z0.pro (Z0 est le nom du projet)
    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
     
    #-------------------------------------------------
    #
    # Project created by QtCreator 2024-07-09T11:10:48
    #
    #-------------------------------------------------
     
    QT      += core gui
     
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
     
    TARGET   = Z0
    TEMPLATE = app
     
    SOURCES += main.cpp\
               ../Graph/mainwindow.cpp
     
    HEADERS += main.h\
               ../Graph/mainwindow.h
     
    FORMS   += mainwindow.ui
    Tant que je n'avais que les fichiers mainwindow.h et mainwindow.cpp, tout fonctionnait.
    Mais depuis que je crée plusieurs fichiers (je ne sais pas vraiment le faire) et que je fais dans un autre répertoire (je les référence alors par ../Graph/ avant maindow.h et avant mainwindow.cpp), ça ne marche pas. Je précise que les mots sont quand même reconnus au moment où je tape le code puisqu'ils s'affichent avec une couleur différente.

    Le message d'erreur de compilation est :
    <<undefined reference to 'List<long double>::List(long long)'>>

    Sauriez-vous m'aider s'il vous plaît ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 131
    Points : 33 065
    Points
    33 065
    Billets dans le blog
    4
    Par défaut
    Un template s'implémente dans le header, dans un fichier inclus, pas dans un cpp.

    https://cpp.developpez.com/faq/cpp/?...lasse-template
    https://cpp.developpez.com/faq/cpp/?...tion-des-liens

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2022
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2022
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    Merci beaucoup.

    Le programme compile maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de compilation de plusieurs fichiers
    Par mattttt01 dans le forum Débuter
    Réponses: 11
    Dernier message: 04/07/2011, 17h20
  2. Compilation de plusieurs fichiers en même temps
    Par oliviernouhi dans le forum Langage
    Réponses: 8
    Dernier message: 02/03/2011, 15h47
  3. [cmake] Forcer un ordre pour la compilation de plusieurs fichiers
    Par systemofaxav dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 18/02/2010, 18h17
  4. [GCC] compilation de plusieurs fichier.o
    Par jobe dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 25/04/2007, 13h56
  5. compilation et plusieurs fichiers .class $1 $2 ?
    Par daed dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 21h53

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