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

Langage C++ Discussion :

[Debutant c++] erreur de compilation de template


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut [Debutant c++] erreur de compilation de template
    salut a tous

    voila j'ai a realiser un programme qui gere des ensembles de n'importe quel type.

    je l'ai dabord ecris pour des enssemble d'entier puis j'ai reforter le code pour qu'il se transforme en template et depuis il compile et ne voit aucune erreur sauf celle ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    g++.exe: ensemble.inl: linker input file unused because linking not done
    g++.exe main.o ensemble.o erreur.o  -o "Ensemble.exe" -L"C:/Dev-Cpp/lib" 
    g++.exe: ensemble.o: No such file or directory
    je comprends bien qu'il cherche ensemble.exe mais je croyais que c'etait justement le but de la compilation et de l'editionde lien

    enfin que faire comment supprimer cette derniere erreur

    WDionysos

    PS: mes fichiers sont tous dans le meme repertoires, il y a ensemble.h, ensemble.inl qui est inclus a la fin de ensemble.h et a cote erreur.h et erreur.cpp pour la gestion des erreurs.

    environement: dev-c++

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je ne sais pas comment tu as ajouté ensemble.inl à ton projet, mais il ne doit être ni compilé ni lié, seulement inclus dans le code source (comme un en-tête) -- s'il contient bien l'implémentation de ta classe template.

    Ainsi tu n'obtiendras pas de fichier ensemble.o (puisque rien n'est compilé).

  3. #3
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    oui a la fin de mon fichier ensemble.h (qui contient la classe ensemble et la classe element) j'ai la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "ensemble.inl"
    et ca m'enerve car pour l'instant j'ai un main totalement vide donc pas d'erreur possible et si j'essai d'y instantier un enssemble, il me dit un

    undeclare, first use this function...

    EDIT ::

    oui il localise l'erreur dans le makefile.win qui est un makefile automatiquement genere par dev c++

    pourriez vous m'indiquez la syntaxe pour une compilation manuelle lorsque j'ai un template est ce

    g++ main.cpp erreur.cpp -o ensemble.exe

    /EDIT

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    oui a la fin de mon fichier ensemble.h (qui contient la classe ensemble et la classe element) j'ai la ligne
    Oui mais es-tu sûr que Dev-C++ ne tente pas de le compiler ? On dirait bien que c'est ce qu'il fait.

  5. #5
    Membre confirmé Avatar de wdionysos
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 222
    Par défaut
    oui peux tu lire mon edit dans le message au dessus

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Il suffit de ne pas spécifier le fichier .inl dans la ligne de commande (c'est comme un en-tête, et tu ne t'amuses pas à compiler les en-têtes).

    Sinon dans Dev-C++ directement, il suffit dans les options de ton projet ou de ton fichier de dire qu'il ne doit pas être compilé.

Discussions similaires

  1. templates et erreur de compilation
    Par Rniamo dans le forum C++
    Réponses: 2
    Dernier message: 14/06/2008, 19h51
  2. [Debutant(e)] Erreur de compilation
    Par gandalf_le_blanc dans le forum Applets
    Réponses: 9
    Dernier message: 27/02/2007, 09h30
  3. [debutant][C++][9]erreur à la compilation
    Par cladsam dans le forum DirectX
    Réponses: 9
    Dernier message: 03/10/2006, 12h05
  4. [Debutant GCC sur Solaris]Erreur de compilation
    Par xxaragornxx dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 13/01/2006, 17h29
  5. Réponses: 4
    Dernier message: 30/04/2004, 13h14

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