Forum Programmation.c++ Multiples erreurs de compil

Posté par  .
Étiquettes : aucune
0
20
juil.
2005
Bonjour,
je suis en train de compiler un fichier cxx qui a l'origine a été edité sous visualC++. j'ai de nombreuses erreurs du type:

CTTSMrcpClient.cxx:2159: ISO C++ interdit la déclaration de « sprintf » sans
type
CTTSMrcpClient.cxx:2159: redefinition of `int sprintf'
CTTSMrcpClient.cxx:2152: «int sprintf» précédemment défini ici
CTTSMrcpClient.cxx:2159: liste d'initaliseurs a été traité comme une
expression composée
CTTSMrcpClient.cxx:2159: conversion invalide de « const char* » vers « int
»
CTTSMrcpClient.cxx:2160: « LOG_ERR » n'a pas été déclaré dans cet horizon
CTTSMrcpClient.cxx:2160: ISO C++ interdit la déclaration de « syslog » sans
type
CTTSMrcpClient.cxx:2160: redefinition of `int syslog'
CTTSMrcpClient.cxx:2153: «int syslog» précédemment défini ici
CTTSMrcpClient.cxx:2160: liste d'initaliseurs a été traité comme une
expression composée
CTTSMrcpClient.cxx:2161: ISO C++ interdit la déclaration de « closelog »
sans type
CTTSMrcpClient.cxx:2162: erreur d'analyse syntaxique avant « return »
CTTSMrcpClient.cxx:2165: redefinition of `char error[1024]'
CTTSMrcpClient.cxx:2158: «char error[1024]» précédemment déclaré ici
CTTSMrcpClient.cxx:2166: ISO C++ interdit la déclaration de « sprintf » sans
type
CTTSMrcpClient.cxx:2166: redefinition of `int sprintf'
CTTSMrcpClient.cxx:2159: «int sprintf» précédemment défini ici
CTTSMrcpClient.cxx:2166: liste d'initaliseurs a été traité comme une
expression composée
CTTSMrcpClient.cxx:2166: conversion invalide de « const char* » vers « int
»
CTTSMrcpClient.cxx:2167: « LOG_ERR » n'a pas été déclaré dans cet horizon
CTTSMrcpClient.cxx:2167: ISO C++ interdit la déclaration de « syslog » sans
type
CTTSMrcpClient.cxx:2167: redefinition of `int syslog'
CTTSMrcpClient.cxx:2160: «int syslog» précédemment défini ici
CTTSMrcpClient.cxx:2167: liste d'initaliseurs a été traité comme une
expression composée
CTTSMrcpClient.cxx:2168: ISO C++ interdit la déclaration de « closelog »
sans type
CTTSMrcpClient.cxx:2169: erreur d'analyse syntaxique avant « return »
CTTSMrcpClient.cxx:2172: redefinition of `char error[1024]'
CTTSMrcpClient.cxx:2165: «char error[1024]» précédemment déclaré ici
CTTSMrcpClient.cxx:2173: ISO C++ interdit la déclaration de « sprintf » sans
type
CTTSMrcpClient.cxx:2173: redefinition of `int sprintf'
CTTSMrcpClient.cxx:2166: «int sprintf» précédemment défini ici
CTTSMrcpClient.cxx:2173: liste d'initaliseurs a été traité comme une
expression composée
CTTSMrcpClient.cxx:2173: conversion invalide de « const char* » vers « int
»
CTTSMrcpClient.cxx:2174: « LOG_ERR » n'a pas été déclaré dans cet horizon



ou ce sont aussi des erreurs de decla de variable, qui pourtant le sont...! ou des erreurs de syntaxes etc...
ya t'il une solution simple pour resoudre tout en meme temps sans avoir a tout refaire...!!! merci
  • # id

    Posté par  (site web personnel) . Évalué à 3.

    Ben déjà commencer par pointer vers le code incriminé ca aiderait :)
    • [^] # Re: id

      Posté par  . Évalué à 1.

      pointer vers le code incriminé..? (je me remets au dev.. eheh!)
      • [^] # Re: id

        Posté par  . Évalué à 1.

        je ne vois vraiment en quoi ca pose probleme: le fichier en question cxx a cette tete (que le debut car la suite est du meme type)


        #include "CTTSMrcpClient.hxx"



        CTTSMrcpClient::CTTSMrcpClient(PCVoiceAppInfo info) : CTTSAbstract( PAppInfo)
        {

        rtpPortNumber = getPortNumber();

        response = 0;

        savedMsg = 0;

        contentId = 100;

        isSpeaking = false;

        myShutdown = false;

        /** Cr?tion du parseur de message MRCP */
        parser = new MrcpMsgParser() ;

        /** Cr?tion de la pile rtsp */
        cttsRtsp = new CTTSRtsp(rtpPort);

        }


        CTTSMrcpClient::~CTTSMrcpClient()
        {

        }

        /**
        * La fonction init se contente de renvoyer les param?res de connection
        * ?la pile rtsp
        */
        int
        CTTSMrcpClient::Init(const char* szInitString = NULL);
        {

        /** szInitString est de la forme :
        * - serveurMrcpMachine (localhost)
        * - port (8554)
        * - serveurMrcpNom (mediaServer)
        * - cheminRessource (/media/synthetizer/)
        * la syntaxe est serveurMrcpMachine:port:serveurMrcpNom:cheminRessource
        */
        int res = cttsRtsp->Init( szInitString );

        /** res == 0 signifie que le client s'est connect?et qu'il a ouvert une session rtsp */
        if ( res != 0 ) return res;

        }


        int
        CTTSMrcpClient::Shutdown(void);
        {


        }


        /**
        * GET-PARAMS id MRCP/1.0
        * Voice-rate:
        */
        int
        CTTSMrcpClient::GetSpeed(int &Speed);
        {

        char buffer[BUFFER_PARAM] ;
        buffer[0] = '\0';

        sprintf(buffer,"GET-PARAMS %d MRCP/1.0\r\nVoice-rate:\r\n\r\n",contentId++);

        /* Envoi de la requ?e au serveur MRCP */
        int res = cttsRtsp->WriteData( buffer,strlen( buffer ) );
        if ( res != 0 ) return res;

        //R?eption du message
        int len = 0;
        res = cttsRtsp->ReadData(buffer,len);
        if ( res != 0 ) return res;










        et au final ca me donne comme erreur:
        CTTSMrcpClient.cxx:7:30: CTTSMrcpClient.hxx: Aucun fichier ou répertoire de ce type
        CTTSMrcpClient.cxx:11: erreur de syntaxes avantle jeton « :: »
        CTTSMrcpClient.cxx:16: ISO C++ interdit la déclaration de « response » sans
        type
        CTTSMrcpClient.cxx:18: ISO C++ interdit la déclaration de « savedMsg » sans
        type
        CTTSMrcpClient.cxx:20: ISO C++ interdit la déclaration de « contentId » sans
        type
        CTTSMrcpClient.cxx:22: ISO C++ interdit la déclaration de « isSpeaking »
        sans type
        CTTSMrcpClient.cxx:24: ISO C++ interdit la déclaration de « myShutdown »
        sans type
        CTTSMrcpClient.cxx:27: ISO C++ interdit la déclaration de « parser » sans
        type
        CTTSMrcpClient.cxx:27: erreur d'analyse syntaxique avantle jeton « ( »
        CTTSMrcpClient.cxx:30: ISO C++ interdit la déclaration de « cttsRtsp » sans
        type
        CTTSMrcpClient.cxx:30: erreur d'analyse syntaxique avantle jeton « ( »
        CTTSMrcpClient.cxx:35: erreur de syntaxes avantle jeton « :: »
        CTTSMrcpClient.cxx:45: erreur de syntaxes avantle jeton « :: »
        CTTSMrcpClient.cxx:64: erreur de syntaxes avantle jeton « :: »
        CTTSMrcpClient.cxx:76: erreur de syntaxes avantle jeton « :: »
        CTTSMrcpClient.cxx:80: ISO C++ interdit la déclaration de « buffer » sans
        type
        CTTSMrcpClient.cxx:80: initialiseur invalide
        CTTSMrcpClient.cxx:82: ISO C++ interdit la déclaration de « sprintf » sans
        type
        CTTSMrcpClient.cxx:82: liste d'initaliseurs a été traité comme une
        expression composée
        CTTSMrcpClient.cxx:85: l'opérande de base de «->» n'est pas un pointeur
        CTTSMrcpClient.cxx:85: « strlen » n'a pas été déclaré dans cet horizon
        CTTSMrcpClient.cxx:86: erreur d'analyse syntaxique avant « if »
        CTTSMrcpClient.cxx:90: ISO C++ interdit la déclaration de « res » sans type
        CTTSMrcpClient.cxx:90: redefinition of `int res'
        CTTSMrcpClient.cxx:85: «int res» précédemment défini ici
        CTTSMrcpClient.cxx:90: l'opérande de base de «->» n'est pas un pointeur
        CTTSMrcpClient.cxx:91: erreur d'analyse syntaxique avant « if »
        CTTSMrcpClient.cxx:99: « MrcpMsg » n'a pas été déclaré dans cet horizon
        CTTSMrcpClient.cxx:99: « Sptr » est utilisé comme type, mais n'est pas
        défini comme type.



        ==>je suis a peu prés d'accord sur le fait qu'il ne trouve pas le .hxx mais le reste....!
        merci
        • [^] # Re: id

          Posté par  . Évalué à 3.

          ==>je suis a peu prés d'accord sur le fait qu'il ne trouve pas le .hxx mais le reste....!

          En général, qaund un compilateur trouve une erreur de ce type... il a du mal à retomber sur ses pattes et les erreurs suivantes ne sont pas significatives...

          Donc : Commences par résoudre le fait qu'il ne trouve pas .hxx ... un -Ichemin/vers/le/hxx/ (à ajouter dans ton Makefile... si tu en as un) dans lers paramètres de g++ devrait faire l'affaire.
  • # Mais aussi

    Posté par  . Évalué à -1.

    Multiples erreurs de doublons

    --> []
  • # Eh ! Mon commentaire ?

    Posté par  . Évalué à 2.

    Bon, pour une raison inconnue, mon commentaire n'a pas été lié à ce thread. Voir ici:

    https://linuxfr.org/comments/602974.html#602974(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.