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