Compilation séparée : ne veut pas linker
toto
-
ThyB45 Messages postés 10 Statut Membre -
ThyB45 Messages postés 10 Statut Membre -
Bonjour,
Tout d'abord, désolé si la réponse a déjà été apportée, en tout cas, je l'ai pas trouvée...
Voila, j'essaie de compiler un projet que je dois rendre, mais pas moyen d'y arriver.
Quand je mets tout dans un fichier main.cpp, ça marche très bien.
Par contre, là, je dois rendre un fichier différent pour chaque classe (classe.cpp + classe.hpp), et un fichier supplémentaire pour l'espace global (structures, variables globales, définition de variable statiques).
Et bien sûr, cette fois, le linker ne veut pas faire son boulot !
Mais, à chaque fois que je cherche comment régler ça, je tombe sur "sous devc++ / code::blocks / visual studio, faites clic droit -> ajouter un fichier..."
IDE ? C'est quoi un IDE ? Mon seul IDE, c'est l'ensemble VIM + GCC + VALGRIND, donc les "sous l'IDE toto" ne me sont d'aucune utilité...
Comment faire pour que g++ arrive à compiler correctement mon programme ???
Merci, et bonne nuit.
Tout d'abord, désolé si la réponse a déjà été apportée, en tout cas, je l'ai pas trouvée...
Voila, j'essaie de compiler un projet que je dois rendre, mais pas moyen d'y arriver.
Quand je mets tout dans un fichier main.cpp, ça marche très bien.
Par contre, là, je dois rendre un fichier différent pour chaque classe (classe.cpp + classe.hpp), et un fichier supplémentaire pour l'espace global (structures, variables globales, définition de variable statiques).
Et bien sûr, cette fois, le linker ne veut pas faire son boulot !
main(ligne) : undefined reference to 'Maclasse::Maclasse' ld a retourné 1 code d'état d'exécution
Mais, à chaque fois que je cherche comment régler ça, je tombe sur "sous devc++ / code::blocks / visual studio, faites clic droit -> ajouter un fichier..."
IDE ? C'est quoi un IDE ? Mon seul IDE, c'est l'ensemble VIM + GCC + VALGRIND, donc les "sous l'IDE toto" ne me sont d'aucune utilité...
Comment faire pour que g++ arrive à compiler correctement mon programme ???
Merci, et bonne nuit.
A voir également:
- Compilation séparée : ne veut pas linker
- Breach compilation c'est quoi - Guide
- Must declare a named package because this compilation unit is associated to the named module - Forum Java
- Erreur de compilation projet ou bibliothèque introuvable - Forum VB / VBA
- Message d'erreur Excel projet ou bibliotheque introuvable ! - Forum Excel
- Erreur de compilation ✓ - Forum Excel
3 réponses
Hm les problème de linkage, c'est en générale quand c'est déclaré dans le .hpp et que ce n'est pas défini dans le .cpp.
Résumé de comment faire en fichier séparé :
Dans le maclass.hpp
et dans ton maclass.cpp
j'espère que ça répond à ta question :x
Résumé de comment faire en fichier séparé :
Dans le maclass.hpp
#ifndef MACLASS_HPP //Pour être sure que ton fichier soit inclus qu'une fois
#define MACLASS_HPP
#include <iostream>
#include "global.hpp" //pour ton fichier global
class MaClass
{
public:
MaClass();
void MaMethode();
};
#endif
et dans ton maclass.cpp
#include "maclass.hpp"
MaClass::MaClass()
{
//blabla
}
void
MaClass::MaMethode()
{
//blabla
}
j'espère que ça répond à ta question :x