compilation avec gcc : erreurs bizard !!!
Bonjour j'essai d'installer un codec pour le fichir Avi mais la compilation me donne une erreur que je ne comprends pas voila il y a une structure (AVOption) defini dans un fichier nommé avcodec.h voici cette structure
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| /**
* AVOption.
*/
typedef struct AVOption {
/** options' name */
const char *name; /* if name is NULL, it indicates a link to next */
/** short English text help or const struct AVOption* subpointer */
const char *help; // const struct AVOption* sub;
/** offset to context structure where the parsed value should be stored */
int offset;
/** options' type */
int type;
#define FF_OPT_TYPE_BOOL 1 ///< boolean - true,1,on (or simply presence)
#define FF_OPT_TYPE_DOUBLE 2 ///< double
#define FF_OPT_TYPE_INT 3 ///< integer
#define FF_OPT_TYPE_STRING 4 ///< string (finished with \0)
#define FF_OPT_TYPE_MASK 0x1f ///< mask for types - upper bits are various flags
//#define FF_OPT_TYPE_EXPERT 0x20 // flag for expert option
#define FF_OPT_TYPE_FLAG (FF_OPT_TYPE_BOOL | 0x40)
#define FF_OPT_TYPE_RCOVERRIDE (FF_OPT_TYPE_STRING | 0x80)
/** min value (min == max -> no limits) */
double min;
/** maximum value for double/int */
double max;
/** default boo [0,1]l/double/int value */
double defval;
/**
* default string value (with optional semicolon delimited extra option-list
* i.e. option1;option2;option3
* defval might select other then first argument as default
*/
const char *defstr;
#define FF_OPT_MAX_DEPTH 10
} AVOption; |
cette Structure est utilisé dans un fichier common.h qui lui aussi est utilisé par common.c
voici les lignes qui me causent des problèmes dans le fichier common.h
Code:
1 2 3 4 5 6 7 8 9 10 11
|
struct AVOption;
#ifdef HAVE_MMX
extern const struct AVOption avoptions_common[3 + 5];
#else
extern const struct AVOption avoptions_common[3];
#endif
extern const struct AVOption avoptions_workaround_bug[11];
#endif /* HAVE_AV_CONFIG_H */ |
voici les erreurs que je reçois à la compilation
Code:
1 2 3 4 5 6 7 8 9 10 11
| [pierre@localhost ffmpeg-0.4.9-pre1]$ make
make -C libavcodec all
make[1]: Entering directory `/home/pierre/ffmpeg-0.4.9-pre1/libavcodec'
gcc -O3 -g -Wall -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o common.o common.c
In file included from avcodec.h:14,
from common.c:28:
common.h:67: erreur: les éléments du tableau sont de type incomplet
common.h:71: erreur: les éléments du tableau sont de type incomplet
make[1]: *** [common.o] Erreur 1
make[1]: Leaving directory `/home/pierre/ffmpeg-0.4.9-pre1/libavcodec'
make: *** [lib] Erreur 2 |
ça fait longtemps que j'utilise gcc mais c'est la premiere fois que je rencontre ce genre d'erreur << les éléments du tableau sont de type incomplet >> qu'est ce que celà signifie ? comment remedier à ça pour que la compilation marche ? merci pour votre aide.
Re: compilation avec gcc : erreurs bizard !!!
Citation:
Envoyé par CodeurNé
voici les lignes qui me causent des problèmes dans le fichier common.h
Code:
1 2 3 4 5 6 7 8 9 10 11
|
struct AVOption;
#ifdef HAVE_MMX
extern const struct AVOption avoptions_common[3 + 5];
#else
extern const struct AVOption avoptions_common[3];
#endif
extern const struct AVOption avoptions_workaround_bug[11];
#endif /* HAVE_AV_CONFIG_H */ |
définit un type incomplet. On ne peut définir avec que des pointeurs. Si tu veux une instance (ou un tableau), il faut le type complet. Il faut donc inclure "avcodec.h" à la place de cette définition.