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] probl�me avec functexcept.h


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par d�faut [compilation] probl�me avec functexcept.h


    J'ai un petit soucis de compilation avec un programme.
    Je dispose de deux fichiers buffer.cpp/h qui contiennent quasiement rien, juste de quoi faire 2 buffers sous forme de fifo.

    Voici leurs codes :
    buffer.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
     
    #include <queue>
     
    // taille des 'frames' des buffers 
    #define TAILLEFRAMEYUV 576 * 720 * 2
     
    // taille de chaque buffer
    #define NBFRAMEBUFFERYUV 100 
    #define NBFRAMEBUFFERSOCKET 100
     
    using namespace std ;
     
    extern queue <unsigned char*> bufferYUV ;   
     
    extern queue <unsigned char*> bufferSocket ;
    ainsi que le .cpp correspondant :

    buffer.cpp
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include "buffer.h"
     
    using namespace std ;
     
    // les buffers YUV 
    queue <unsigned char*> bufferYUV ;
     
    // le buffer de la socket
    queue <unsigned char*> bufferSocket ;
    Mon soucis, c'est que lors de la compilation j'ai syst�matiquement le message d'erreur suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    In file included from /usr/lib/gcc/i486-slackware-linux/3.4.6/../../../../include/c++/3.4.6/queue:67,
                     from includes/buffer.h:8,
                     from src/decodeSocketTStoSDI.cpp:20:
    /usr/lib/gcc/i486-slackware-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h:36: error: expected initializer before "namespace"
    In file included from /usr/lib/gcc/i486-slackware-linux/3.4.6/../../../../include/c++/3.4.6/queue:67,
                     from includes/buffer.h:8,
                     from src/threads.cpp:21:
    /usr/lib/gcc/i486-slackware-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h:36: error: expected initializer before "namespace"
    le fichier src/decodeSocketTStoSDI.cpp inclut � la ligne 20 le fichier includes/buffer.h qui lui meme inclut <queue>, comme vous avez pu le voir dans le code source.

    L'erreur provient de functexcept.h qui a la ligne 36 d�clare le namespace std.

    Vu que c'est un fichier que je n'ai jamais touch�, je me demande bien pourquoi cette erreur vient de l� ...

    Quelqu'un aurait-il une id�e ?

    merci d'avance !

    Raph

  2. #2
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Bonjour,

    je ne suis pas certain que �a vient de l�, mais:
    1/ Il ne faut pas utiliser la directive using namespace dans un fichier en-t�te. (voir cette faq).
    2/ L'utilisation syst�matique d'un pare-feu de compilation est fortement conseill�e.

    Et puis (�a n'a aucun rapport avec ton probl�me par contre), les #define sont � proscrire. Utilise un const type plut�t.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par d�faut
    merci de tes conseils, j'�tais au courant pour les using namespace � proscrire dans les fichier .h.

    Par contre, qu'est ce qu'un pare feu de compilation ? (j'ai l'impression de poser une question b�te).

  4. #4
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par Dark Raph Voir le message
    Par contre, qu'est ce qu'on pare feu de compilation ?
    C'est lorsqu'on rajoute #ifndef MACHIN #define MACHIN /* d�clarations */ #endif
    Par exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef MA_CLASSE_H
    #define MA_CLASSE_H
     
    class MaClasse
    {
    // mon code
    };
     
    #endif
    Ca �vite que ce qui est c�clar� dans ce fichier le soit plusieurs fois.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Par d�faut
    Merci !

    D'accord, �a s'appelle comme �a donc Grace � ton explication je viens de comprendre l'int�r�t d'un tel pare feu ! Et je me suis empress� d'en mettre un dans chacun de mes headers ...

    ... par contre le probl�me est toujours l�.

    Qu'est ce que l'erreur error: expected initializer before "namespace" peut-elle laissait sous entendre ?

  6. #6
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    As-tu enlev� le using namespace du .h ?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Compiler] Probl�me avec uiimport
    Par sebten dans le forum MATLAB
    R�ponses: 8
    Dernier message: 14/08/2008, 14h04
  2. Probl�me pour compiler Ogre avec VS 2005
    Par Oxideur dans le forum Ogre
    R�ponses: 2
    Dernier message: 01/03/2007, 18h33
  3. probl�me avec les .java compil�s
    Par root76 dans le forum Eclipse Java
    R�ponses: 5
    Dernier message: 05/05/2006, 19h14
  4. [D�butant] J'ai un probl�me avec la compilation des classes
    Par Paulinho dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 19/11/2005, 14h23
  5. [Kylix] probl�me compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    R�ponses: 1
    Dernier message: 02/07/2003, 16h21

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