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 avec gcc : erreurs bizard !!!


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 89
    Points : 69
    Points
    69
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Un type incomplet en C ou C++, c'est généralement une structure non définie (elle peut être déclarée, mais son contenu est inconnu, donc sa taille l'est aussi)

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. [SDL 2.0] Compilation avec gcc (mingw) , erreur de link?
    Par Devprek dans le forum SDL
    Réponses: 3
    Dernier message: 10/02/2015, 11h02
  2. erreur de compilation avec gcc
    Par boudjema.m dans le forum C
    Réponses: 1
    Dernier message: 15/04/2010, 17h02
  3. Erreur de compilation avec gcc
    Par KINGINFO dans le forum Débuter
    Réponses: 6
    Dernier message: 08/01/2009, 16h52
  4. Erreur de compilation avec GCC
    Par Neuromancien2 dans le forum C
    Réponses: 7
    Dernier message: 20/08/2007, 10h54
  5. compilation avec gcc: erreur inhabituelle
    Par artatum dans le forum C
    Réponses: 4
    Dernier message: 12/10/2005, 18h13

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