Inscription / Connexion Nouveau Sujet
Forum Expresso
Partager :

problème de compilation( programme c++)

Posté par
guit_storm
07-12-07 à 13:33

bonjour tout le monde,
j'ai un petit problème concernant un programme, en effet lorsque je compile il ne détecte aucune erreur mais le 'hic' c'est qu'il n'y aucune exécution, aucune console ne s'affiche
j'ai partagé le programme en trois fichiers
voici le fichier.h:

#ifndef FONCTIONS_H
#define FONCTIONS_H
#include <iostream>
using namespace std;
const int MAX=100;
int saisie(char [], const int MAX);
void maj(const char[]);
void crypt(const char[],int);
void decrypt(const char[],int);
#endif

voici le fichier de définition de fonction( pour l'instant je n'ai que la première fonction)
#include "fonctions.h"
int saisie(char tableau[], const int MAX)
{
    int nbcar=0,rep;
    char uncar;
    cout<<" Saisissez des caracteres et terminez par *(max 100 caractères)"<<endl;
    cin.get(uncar);
    while(uncar='*'&& nbcar<MAX)
    {
        tableau[nbcar]=uncar;
        nbcar++;
        cin.get(tableau[uncar]);
    }
    if(uncar=='*')
    {
        cout<<"saisie termine"<<endl;
    }
    else
    {
        cout<<" plus de place, saisie stoppee"<<endl;
    }
    return (nbcar);
    

et voici un programme principal(je ne fais appel qu'à la première fonction pour la tester)
#include "fonctions.cpp"
int main()
{
    char tab[MAX];
    int cle;
    cout<<" Bonjour"<<endl;
    cout<<saisie(tab,MAX);
    return 0;
}



et voici le message que j'obtiens:
Project   : Console application
Compiler  : GNU GCC Compiler (called directly)
Directory : Z:\PROJETS\mp3\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.cpp
Compiling: fonctions.cpp
Linking console executable: Z:\PROJETS\mp3\console.exe
.objs\fonctions.o:fonctions.cpp.text+0x100): multiple definition of `saisie(char*, int)'
.objs\main.o:main.cpp.text+0x100): first defined here
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 2 seconds)

merci d'avance pour votre aide

Posté par
jamo Moderateur
re : problème de compilation( programme c++) 07-12-07 à 18:45

Bonjour,

je te conseille un forum spécialisé en informatique :

Posté par
TiT126
re : problème de compilation( programme c++) 09-12-07 à 14:27

salut,

On ne doit pas mettre de using namespce std dans un *.h ...
Tes constantes il est préférable de les initialisé comme ceci : #define MAX 100 dans le *.h

Posté par leucocyte (invité)re : problème de compilation( programme c++) 12-12-07 à 23:24

le problème est probablement le test avec '=' au lieu de '==' dans le while.
L'operateur = renvoie la valeur affectée: ici '*' qui n'est pas nul. En C (ou C++) tout ce qui n'est pas nul n'est pas faux. Donc la condition d'arrêt n'est jamais atteinte !

Posté par leucocyte (invité)re : problème de compilation( programme c++) 12-12-07 à 23:32

Pour le compilateur, c'est parce que ton prototype dans le .h n'est pas déclaré 'extern':

extern in saisie (...);

Du coup, tous le fichiers .cpp compilés qui ont inclut ton .h ont une fonction saisie. Elle est référencée dans chaque .o produit par cette compilation. A l'édition de liens, ces définitions multiples sont considérées comme des erreurs. En effet, laquelle appeler ?

Posté par leucocyte (invité)re : problème de compilation( programme c++) 13-12-07 à 11:47

correction:

extern int saisie(...);

Posté par
frenicle
re : problème de compilation( programme c++) 14-12-07 à 22:22

Bonjour

Si ça peut aider, je connais une informaticienne qui compile le C.

OK, je sors...

Posté par folan (invité)re : problème de compilation( programme c++) 19-12-07 à 12:04

bonjour
je croi que dans le programme principal il faux declare (#include "fonctions.h") au lieu de ( #include "fonctions.cpp")



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !