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

Qt Discussion :

Problème avec Qt


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut Problème avec Qt
    bonjour;
    je suis élève ingénieur et j'ai un problème lors de la compilation de mon prg les détails sont la suivant:
    je travail sur QT intégrer sous eclipse (OS:windows).
    lors de la compilation d'une main simple (c-à-d un int main(int argc, char *argv[]) { printf("helloword"); return0;}) tout est parfait.Mais lorsque je fait l'intégration de mon prg qui est la suivant:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    /************************************************************************************************/
    #include "premier_pa.h"
     
    #include <QtGui>
    #include <QApplication>
     
     
    #include "asf.h"
     
    static void
    print_metadata(asf_metadata_t *metadata) {
            int i;
     
            printf("----- PRINT METADATA -----\n");
            if (metadata->title)
                    printf("title: %s\n", metadata->title);
            if (metadata->artist)
                    printf("artist: %s\n", metadata->artist);
            if (metadata->copyright)
                    printf("copyright: %s\n", metadata->copyright);
            if (metadata->description)
                    printf("description: %s\n", metadata->description);
            if (metadata->rating)
                    printf("rating: %s\n", metadata->rating);
            for (i=0; i<metadata->extended_count; i++) {
                    printf("\"%s\" - \"%s\"\n", metadata->extended[i].key, metadata->extended[i].value);
            }
            printf("-----  END METADATA -----\n");
    }
     
    int main(int argc, char *argv[]) {
            asf_file_t *file;
            asf_metadata_t *metadata;
            asf_packet_t *pkt;
            int i;
     
            if (argc != 2) {
                    printf("Incorrect number of arguments\n");
                    return -1;
            }
     
            file = asf_open_file(argv[1]);
            if (!file) {
                    printf("Error opening file %s\n", argv[1]);
                    return -1;
            }
     
            asf_init(file);
            metadata = asf_header_get_metadata(file);
            if (metadata) {
                    print_metadata(metadata);
                    asf_metadata_destroy(metadata);
            }
     
            pkt = asf_packet_create();
            for (i=0; i<10; i++) {
                    int tmp;
     
                    if ((tmp = asf_seek_to_msec(file, (uint64_t) i*1000)) < 0) {
                            printf("Seek failed\n");
                    }
     
                    if ((tmp = asf_get_packet(file, pkt)) < 0) {
                            printf("Error %d getting packet\n", tmp);
                            break;
                    }
     
                    if (!tmp) {
                            printf("EOF found\n");
                            break;
                    }
            }
            asf_packet_destroy(pkt);
    /*
            printf("position after seek %lld\n",
            asf_seek_to_msec(file, 18000));
    */
            asf_close(file);
     
            return 0;
    }
    /********************************************************************************************************/
    sachant que j'ai tout les fichier .h et .c de toutes les fonctions il m'affiche la liste d'erreur suivante:

    mingw32-make debug
    mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory `E:/wseclipsemingw/premier_pa'
    g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include" -I"c:\Qt\4.4.3\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.4.3\mkspecs\default" -o debug\main.o main.cpp
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\premier_pa.exe object_script.premier_pa.Debug -L"c:\Qt\4.4.3\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
    ./debug\main.o(.text+0x23e): In function `Z5qMainiPPc':
    E:/wseclipsemingw/premier_pa/main.cpp:41: undefined reference to `asf_open_file(char const*)'
    ./debug\main.o(.text+0x276):E:/wseclipsemingw/premier_pa/main.cpp:47: undefined reference to `asf_init(asf_file_s*)'
    ./debug\main.o(.text+0x281):E:/wseclipsemingw/premier_pa/main.cpp:48: undefined reference to `asf_header_get_metadata(asf_file_s*)'
    ./debug\main.o(.text+0x2a0):E:/wseclipsemingw/premier_pa/main.cpp:51: undefined reference to `asf_metadata_destroy(asf_metadata_s*)'
    ./debug\main.o(.text+0x2a5):E:/wseclipsemingw/premier_pa/main.cpp:54: undefined reference to `asf_packet_create()'
    ./debug\main.o(.text+0x2d0):E:/wseclipsemingw/premier_pa/main.cpp:58: undefined reference to `asf_seek_to_msec(asf_file_s*, long long)'
    ./debug\main.o(.text+0x2f8):E:/wseclipsemingw/premier_pa/main.cpp:62: undefined reference to `asf_get_packet(asf_file_s*, asf_packet_s*)'
    ./debug\main.o(.text+0x33f):E:/wseclipsemingw/premier_pa/main.cpp:72: undefined reference to `asf_packet_destroy(asf_packet_s*)'
    ./debug\main.o(.text+0x34a):E:/wseclipsemingw/premier_pa/main.cpp:77: undefined reference to `asf_close(asf_file_s*)'
    collect2: ld returned 1 exit status
    mingw32-make[1]: Leaving directory `E:/wseclipsemingw/premier_pa'
    mingw32-make[1]: *** [debug\premier_pa.exe] Error 1
    mingw32-make: *** [debug] Error 2

    j'ai déja cherché sur les forum mais rien de nouveau
    j'ai besoin de l'aide et je suis à votre disposition pour tout autre détail
    Merci d'avance pour tout aide

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Citation Envoyé par boumab Voir le message
    bonjour;
    je suis élève ingénieur et j'ai un problème lors de la compilation de mon prg les détails sont la suivant:
    je travail sur QT intégrer sous eclipse (OS:windows).
    lors de la compilation d'une main simple (c-à-d un int main(int argc, char *argv[]) { printf("helloword"); return0;}) tout est parfait.Mais lorsque je fait l'intégration de mon prg qui est la suivant:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    /************************************************************************************************/
    #include "premier_pa.h"
     
    #include <QtGui>
    #include <QApplication>
     
     
    #include "asf.h"
     
    static void
    print_metadata(asf_metadata_t *metadata) {
            int i;
     
            printf("----- PRINT METADATA -----\n");
            if (metadata->title)
                    printf("title: %s\n", metadata->title);
            if (metadata->artist)
                    printf("artist: %s\n", metadata->artist);
            if (metadata->copyright)
                    printf("copyright: %s\n", metadata->copyright);
            if (metadata->description)
                    printf("description: %s\n", metadata->description);
            if (metadata->rating)
                    printf("rating: %s\n", metadata->rating);
            for (i=0; i<metadata->extended_count; i++) {
                    printf("\"%s\" - \"%s\"\n", metadata->extended[i].key, metadata->extended[i].value);
            }
            printf("-----  END METADATA -----\n");
    }
     
    int main(int argc, char *argv[]) {
            asf_file_t *file;
            asf_metadata_t *metadata;
            asf_packet_t *pkt;
            int i;
     
            if (argc != 2) {
                    printf("Incorrect number of arguments\n");
                    return -1;
            }
     
            file = asf_open_file(argv[1]);
            if (!file) {
                    printf("Error opening file %s\n", argv[1]);
                    return -1;
            }
     
            asf_init(file);
            metadata = asf_header_get_metadata(file);
            if (metadata) {
                    print_metadata(metadata);
                    asf_metadata_destroy(metadata);
            }
     
            pkt = asf_packet_create();
            for (i=0; i<10; i++) {
                    int tmp;
     
                    if ((tmp = asf_seek_to_msec(file, (uint64_t) i*1000)) < 0) {
                            printf("Seek failed\n");
                    }
     
                    if ((tmp = asf_get_packet(file, pkt)) < 0) {
                            printf("Error %d getting packet\n", tmp);
                            break;
                    }
     
                    if (!tmp) {
                            printf("EOF found\n");
                            break;
                    }
            }
            asf_packet_destroy(pkt);
    /*
            printf("position after seek %lld\n",
            asf_seek_to_msec(file, 18000));
    */
            asf_close(file);
     
            return 0;
    }
    /********************************************************************************************************/
    sachant que j'ai tout les fichier .h et .c de toutes les fonctions il m'affiche la liste d'erreur suivante:

    mingw32-make debug
    mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory `E:/wseclipsemingw/premier_pa'
    g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtCore" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include\QtGui" -I"c:\Qt\4.4.3\include" -I"c:\Qt\4.4.3\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.4.3\mkspecs\default" -o debug\main.o main.cpp
    g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\premier_pa.exe object_script.premier_pa.Debug -L"c:\Qt\4.4.3\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
    ./debug\main.o(.text+0x23e): In function `Z5qMainiPPc':
    E:/wseclipsemingw/premier_pa/main.cpp:41: undefined reference to `asf_open_file(char const*)'
    ./debug\main.o(.text+0x276):E:/wseclipsemingw/premier_pa/main.cpp:47: undefined reference to `asf_init(asf_file_s*)'
    ./debug\main.o(.text+0x281):E:/wseclipsemingw/premier_pa/main.cpp:48: undefined reference to `asf_header_get_metadata(asf_file_s*)'
    ./debug\main.o(.text+0x2a0):E:/wseclipsemingw/premier_pa/main.cpp:51: undefined reference to `asf_metadata_destroy(asf_metadata_s*)'
    ./debug\main.o(.text+0x2a5):E:/wseclipsemingw/premier_pa/main.cpp:54: undefined reference to `asf_packet_create()'
    ./debug\main.o(.text+0x2d0):E:/wseclipsemingw/premier_pa/main.cpp:58: undefined reference to `asf_seek_to_msec(asf_file_s*, long long)'
    ./debug\main.o(.text+0x2f8):E:/wseclipsemingw/premier_pa/main.cpp:62: undefined reference to `asf_get_packet(asf_file_s*, asf_packet_s*)'
    ./debug\main.o(.text+0x33f):E:/wseclipsemingw/premier_pa/main.cpp:72: undefined reference to `asf_packet_destroy(asf_packet_s*)'
    ./debug\main.o(.text+0x34a):E:/wseclipsemingw/premier_pa/main.cpp:77: undefined reference to `asf_close(asf_file_s*)'
    collect2: ld returned 1 exit status
    mingw32-make[1]: Leaving directory `E:/wseclipsemingw/premier_pa'
    mingw32-make[1]: *** [debug\premier_pa.exe] Error 1
    mingw32-make: *** [debug] Error 2

    j'ai déja cherché sur les forum mais rien de nouveau
    j'ai besoin de l'aide et je suis à votre disposition pour tout autre détail
    Merci d'avance pour tout aide
    Je suis desolé mais je comprends pas biein ton probleme. Tout d'abord si tu dois utiliser Qt tu dois le faire en C++ donc fichier .h et .cpp. Apres je vois pas dans ton programme d'objet utilisant le framwork Qt, ni meme d'initialisation du framework Qt dans ton main ?

    Pourquoi veux tu utiliser Qt si tu fais juste du printf() le c standard le fait tres bien ?

    Si tu souhaite commencer avec Qt je pense que la traduction de tuto Qt par la team Qt de developpez est un bon debut pour toi. Dispo ici.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    On faite je suis obliger de travailler sur QT mais pour l'instant je suis en train de tester ce petit prg pour terminer le reste.
    le pb dans ce stade cé pas le type de framework mais d'ou vient ce type d'erreur.

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Le problème ne vient pas de Qt.

    Le problème vient du fait que tu fais appel à des fonctions *déclarées* dans asf.h mais qu'à aucun moment tu ne compiles un "asf.cpp" qui contiendrait les *définitions* de ces fonctions, ni tu ne fournis un asf.o qui serait le résultat de la compilation de asf.cpp.
    Rajoutes asf.cpp à ton projet et ça devrait aller

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    bonjour
    j'ai déja le fichier "asf.c" qui contient tous les fonctions et lorsque je consulte le dossier à la quel se trouve mon projet je trouve tous les fichiers "*.o" (et le fichier asf.o)
    je ne sais pas à cet instant d'ou vient ce type d'erreur

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Le fichier asf.o n'est, si je ne m'abuse, pas donné à g++ pour la compilation de ton programme. C'est là le problème.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    je compile avec eclipse (j'ai intégré QT dans eclipse)je ne sais pas comment faire pour que g++ prendre on compte le fichier asf.o comment faire pour le chargement de fichier avec le compilateur g++

  8. #8
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Le fichier asf.c fait partie de ton projet ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    oui le fichier asf.c fait partie de mon projet voila le code source de ce fichier
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
     
     
    #include <stdlib.h>
    #include <stdio.h>
     
    #include "asf.h"
    #include "asfint.h"
    #include "fileio.h"
    #include "byteio.h"
    #include "header.h"
    #include "parse.h"
    #include "data.h"
    #include "debug.h"
     
    asf_file_t *
    asf_open_file(const char *filename)
    {
            asf_file_t *file;
            asf_iostream_t stream;
            FILE *fstream;
     
            fstream = fopen(filename, "r");
            if (!fstream)
                    return NULL;
     
            stream.read = asf_fileio_read_cb;
            stream.write = asf_fileio_write_cb;
            stream.seek = asf_fileio_seek_cb;
            stream.opaque = fstream;
     
            file = asf_open_cb(&stream);
            if (!file)
                    return NULL;
     
            file->filename = filename;
     
            return file;
    }
     
    asf_file_t *
    asf_open_cb(asf_iostream_t *iostream)
    {
            asf_file_t *file;
            int i;
     
            if (!iostream)
                    return NULL;
     
            file = calloc(1, sizeof(asf_file_t));
            if (!file)
                    return NULL;
     
            file->filename = NULL;
            file->iostream.read = iostream->read;
            file->iostream.write = iostream->write;
            file->iostream.seek = iostream->seek;
            file->iostream.opaque = iostream->opaque;
     
            file->header = NULL;
            file->data = NULL;
            file->index = NULL;
     
            for (i=0; i < ASF_MAX_STREAMS; i++) {
                    file->streams[i].type = ASF_STREAM_TYPE_NONE;
                    file->streams[i].flags = ASF_STREAM_FLAG_NONE;
                    file->streams[i].properties = NULL;
                    file->streams[i].extended = NULL;
            }
     
            return file;
    }
     
    int
    asf_init(asf_file_t *file)
    {
            int tmp;
     
            if (!file)
                    return ASF_ERROR_INTERNAL;
     
            tmp = asf_parse_header(file);
            if (tmp < 0) {
                    debug_printf("error parsing header: %d", tmp);
                    return tmp;
            }
            file->position += tmp;
            file->data_position = file->position;
     
            tmp = asf_parse_data(file);
            if (tmp < 0) {
                    debug_printf("error parsing data object: %d", tmp);
                    return tmp;
            }
            file->position += tmp;
     
            if (file->flags & ASF_FLAG_SEEKABLE && file->iostream.seek) {
                    int64_t seek_position;
     
                    file->index_position = file->data_position +
                                           file->data->size;
     
                    seek_position = file->iostream.seek(file->iostream.opaque,
                                                        file->index_position);
     
                    /* if first seek fails, we can try to recover and just ignore seeking */
                    if (seek_position >= 0) {
                            while (seek_position == file->index_position &&
                                   file->index_position < file->file_size && !file->index) {
                                    tmp = asf_parse_index(file);
                                    if (tmp < 0) {
                                            debug_printf("Error finding index object! %d", tmp);
                                            break;
                                    }
     
                                    /* The object read was something else than index */
                                    if (!file->index)
                                            file->index_position += tmp;
     
                                    seek_position = file->iostream.seek(file->iostream.opaque,
                                                                      file->index_position);
                            }
     
                            if (!file->index) {
                                    debug_printf("Couldn't find an index object");
                                    file->index_position = 0;
                            }
     
                            seek_position = file->iostream.seek(file->iostream.opaque,
                                                              file->data->packets_position);
                            if (seek_position != file->data->packets_position) {
                                    /* Couldn't seek back to packets position, this is fatal! */
                                    return ASF_ERROR_SEEK;
                            }
                    }
            }
     
            for (tmp = 0; tmp < ASF_MAX_STREAMS; tmp++) {
                    if (file->streams[tmp].type != ASF_STREAM_TYPE_NONE) {
                            debug_printf("stream %d of type %d found!", tmp, file->streams[tmp].type);
                    }
            }
     
            return 0;
    }
     
    void
    asf_close(asf_file_t *file)
    {
            if (file) {
                    int i;
     
                    asf_free_header(file->header);
                    free(file->data);
                    if (file->index)
                            free(file->index->entries);
                    free(file->index);
     
                    if (file->filename)
                            fclose(file->iostream.opaque);
     
                    for (i=0; i < ASF_MAX_STREAMS; i++) {
                            free(file->streams[i].properties);
                            free(file->streams[i].extended);
                    }
     
                    free(file);
            }
    }
     
    asf_packet_t *
    asf_packet_create()
    {
            asf_packet_t *ret;
     
            ret = malloc(sizeof(asf_packet_t));
            if (!ret)
                    return NULL;
     
            asf_data_init_packet(ret);
     
            return ret;
    }
     
    int
    asf_get_packet(asf_file_t *file, asf_packet_t *packet)
    {
            int tmp;
     
     
            if (!file || !packet)
                    return ASF_ERROR_INTERNAL;
     
            if (file->packet >= file->data_packets_count) {
                    return 0;
            }
     
            tmp = asf_data_get_packet(packet, file);
            if (tmp < 0) {
                    return tmp;
            }
     
            file->position += tmp;
            file->packet++;
     
            return tmp;
    }
     
    void
    asf_packet_destroy(asf_packet_t *packet)
    {
            asf_data_free_packet(packet);
            free(packet);
    }
     
    int64_t
    asf_seek_to_msec(asf_file_t *file, int64_t msec)
    {
            uint64_t packet;
            uint64_t new_position;
            uint64_t new_msec;
            int64_t seek_position;
     
            if (!file)
                    return ASF_ERROR_INTERNAL;
     
            if (!(file->flags & ASF_FLAG_SEEKABLE) || !file->iostream.seek) {
                    return ASF_ERROR_SEEKABLE;
            }
     
            /* Index structure is missing, check if we can still seek */
            if (file->index == NULL) {
                    int i, audiocount;
     
                    audiocount = 0;
                    for (i=0; i<ASF_MAX_STREAMS; i++) {
                            if (file->streams[i].type == ASF_STREAM_TYPE_NONE)
                                    continue;
     
                            /* Non-audio files are not seekable without index */
                            if (file->streams[i].type != ASF_STREAM_TYPE_AUDIO)
                                    return ASF_ERROR_SEEKABLE;
                            else
                                    audiocount++;
                    }
     
                    /* Audio files with more than one audio track are not seekable
                     * without index */
                    if (audiocount != 1)
                            return ASF_ERROR_SEEKABLE;
            }
     
            if (msec > (file->play_duration / 10000)) {
                    return ASF_ERROR_SEEK;
            }
     
            if (file->index) {
                    uint32_t index_entry;
     
                    /* Fetch current packet from index entry structure */
                    index_entry = msec * 10000 / file->index->entry_time_interval;
                    if (index_entry >= file->index->entry_count) {
                            return ASF_ERROR_SEEK;
                    }
                    packet = file->index->entries[index_entry].packet_index;
     
                    /* the correct msec time isn't known before reading the packet */
                    new_msec = msec;
            } else {
                    /* convert msec into bytes per second and divide with packet_size */
                    packet = msec * file->max_bitrate / 8000 / file->packet_size;
     
                    /* calculate the resulting position in the audio stream */
                    new_msec = packet * file->packet_size * 8000 / file->max_bitrate;
            }
     
            /* calculate new position to be in the beginning of the current frame */
            new_position = file->data->packets_position + packet * file->packet_size;
     
            seek_position = file->iostream.seek(file->iostream.opaque, new_position);
            if (seek_position < 0 || seek_position != new_position) {
                    return ASF_ERROR_SEEK;
            }
     
            /* update current file position information */
            file->position = new_position;
            file->packet = packet;
     
            return new_msec;
    }
     
    asf_metadata_t *
    asf_header_get_metadata(asf_file_t *file)
    {
            if (!file || !file->header)
                    return NULL;
     
            return asf_header_metadata(file->header);
    }
     
    void
    asf_header_destroy(asf_file_t *file)
    {
            if (!file)
                    return;
     
            asf_free_header(file->header);
            file->header = NULL;
    }
     
    void
    asf_metadata_destroy(asf_metadata_t *metadata)
    {
            asf_header_free_metadata(metadata);
    }
     
    uint8_t
    asf_get_stream_count(asf_file_t *file)
    {
            uint8_t ret = 0;
            int i;
     
            for (i = 0; i < ASF_MAX_STREAMS; i++) {
                    if (file->streams[i].type != ASF_STREAM_TYPE_NONE)
                            ret = i;
            }
     
            return ret;
    }
     
    int
    asf_is_broadcast(asf_file_t *file) {
            return (file->flags & ASF_FLAG_BROADCAST);
    }
     
    int
    asf_is_seekable(asf_file_t *file) {
            return (file->flags & ASF_FLAG_SEEKABLE);
    }
     
    asf_stream_t *
    asf_get_stream(asf_file_t *file, uint8_t track)
    {
            if (!file || track >= ASF_MAX_STREAMS)
                    return NULL;
     
            return &file->streams[track];
    }
     
    uint64_t
    asf_get_file_size(asf_file_t *file)
    {
            if (!file)
                    return 0;
     
            return file->file_size;
    }
     
    uint64_t
    asf_get_creation_date(asf_file_t *file)
    {
            if (!file)
                    return 0;
     
            return file->creation_date;
    }
     
    uint64_t
    asf_get_data_packets(asf_file_t *file)
    {
            if (!file)
                    return 0;
     
            return file->data_packets_count;
    }
     
    uint64_t
    asf_get_duration(asf_file_t *file)
    {
            if (!file)
                    return 0;
     
            return file->play_duration;
    }
     
    uint32_t
    asf_get_max_bitrate(asf_file_t *file)
    {
            if (!file)
                    return 0;
     
     
            return file->max_bitrate;
    }
    sachant que tous les includes
    #include "asfint.h"
    #include "fileio.h"
    #include "byteio.h"
    #include "header.h"
    #include "parse.h"
    #include "data.h"
    #include "debug.h"
    j'ai leurs sources et je ne pas aucune erreur dans leurs codes
    merci pour votre attention

  10. #10
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    As-tu un fichier nommé "Makefile" dans le dossier de ton projet ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    oui j'ai ce fichier dans le dossier de mon projet et voila le contenu de ce fichier
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    #############################################################################
    # Makefile for building: premier_pa
    # Generated by qmake (2.01a) (Qt 4.4.3) on: jeu. 26. mars 14:26:24 2009
    # Project:  premier_pa.pro
    # Template: app
    # Command: c:\Qt\4.4.3\bin\qmake -win32 -o Makefile premier_pa.pro
    #############################################################################
     
    first: debug
    install: debug-install
    uninstall: debug-uninstall
    MAKEFILE      = Makefile
    QMAKE         = c:\Qt\4.4.3\bin\qmake
    DEL_FILE      = del
    CHK_DIR_EXISTS= if not exist
    MKDIR         = mkdir
    COPY          = copy /y
    COPY_FILE     = $(COPY)
    COPY_DIR      = xcopy /s /q /y /i
    INSTALL_FILE  = $(COPY_FILE)
    INSTALL_PROGRAM = $(COPY_FILE)
    INSTALL_DIR   = $(COPY_DIR)
    DEL_FILE      = del
    SYMLINK       = 
    DEL_DIR       = rmdir
    MOVE          = move
    CHK_DIR_EXISTS= if not exist
    MKDIR         = mkdir
    SUBTARGETS    =  \
    		debug \
    		release
     
    debug: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug
    debug-make_default: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug 
    debug-make_first: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug first
    debug-all: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug all
    debug-clean: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug clean
    debug-distclean: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug distclean
    debug-install: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug install
    debug-uninstall: $(MAKEFILE).Debug FORCE
    	$(MAKE) -f $(MAKEFILE).Debug uninstall
    release: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release
    release-make_default: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release 
    release-make_first: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release first
    release-all: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release all
    release-clean: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release clean
    release-distclean: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release distclean
    release-install: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release install
    release-uninstall: $(MAKEFILE).Release FORCE
    	$(MAKE) -f $(MAKEFILE).Release uninstall
     
    Makefile: premier_pa.pro  c:/Qt/4.4.3/mkspecs/default/qmake.conf c:/Qt/4.4.3/mkspecs/qconfig.pri \
    		c:/Qt/4.4.3/mkspecs/features/qt_functions.prf \
    		c:/Qt/4.4.3/mkspecs/features/qt_config.prf \
    		c:/Qt/4.4.3/mkspecs/features/exclusive_builds.prf \
    		c:/Qt/4.4.3/mkspecs/features/default_pre.prf \
    		c:/Qt/4.4.3/mkspecs/features/win32/default_pre.prf \
    		c:/Qt/4.4.3/mkspecs/features/debug.prf \
    		c:/Qt/4.4.3/mkspecs/features/debug_and_release.prf \
    		c:/Qt/4.4.3/mkspecs/features/default_post.prf \
    		c:/Qt/4.4.3/mkspecs/features/win32/rtti.prf \
    		c:/Qt/4.4.3/mkspecs/features/win32/exceptions.prf \
    		c:/Qt/4.4.3/mkspecs/features/win32/stl.prf \
    		c:/Qt/4.4.3/mkspecs/features/shared.prf \
    		c:/Qt/4.4.3/mkspecs/features/warn_on.prf \
    		c:/Qt/4.4.3/mkspecs/features/qt.prf \
    		c:/Qt/4.4.3/mkspecs/features/win32/thread.prf \
    		c:/Qt/4.4.3/mkspecs/features/moc.prf \
    		c:/Qt/4.4.3/mkspecs/features/win32/windows.prf \
    		c:/Qt/4.4.3/mkspecs/features/resources.prf \
    		c:/Qt/4.4.3/mkspecs/features/uic.prf \
    		c:/Qt/4.4.3/mkspecs/features/yacc.prf \
    		c:/Qt/4.4.3/mkspecs/features/lex.prf \
    		c:/Qt/4.4.3/lib/qtmaind.prl
    	$(QMAKE) -win32 -o Makefile premier_pa.pro
    c:\Qt\4.4.3\mkspecs\qconfig.pri:
    c:\Qt\4.4.3\mkspecs\features\qt_functions.prf:
    c:\Qt\4.4.3\mkspecs\features\qt_config.prf:
    c:\Qt\4.4.3\mkspecs\features\exclusive_builds.prf:
    c:\Qt\4.4.3\mkspecs\features\default_pre.prf:
    c:\Qt\4.4.3\mkspecs\features\win32\default_pre.prf:
    c:\Qt\4.4.3\mkspecs\features\debug.prf:
    c:\Qt\4.4.3\mkspecs\features\debug_and_release.prf:
    c:\Qt\4.4.3\mkspecs\features\default_post.prf:
    c:\Qt\4.4.3\mkspecs\features\win32\rtti.prf:
    c:\Qt\4.4.3\mkspecs\features\win32\exceptions.prf:
    c:\Qt\4.4.3\mkspecs\features\win32\stl.prf:
    c:\Qt\4.4.3\mkspecs\features\shared.prf:
    c:\Qt\4.4.3\mkspecs\features\warn_on.prf:
    c:\Qt\4.4.3\mkspecs\features\qt.prf:
    c:\Qt\4.4.3\mkspecs\features\win32\thread.prf:
    c:\Qt\4.4.3\mkspecs\features\moc.prf:
    c:\Qt\4.4.3\mkspecs\features\win32\windows.prf:
    c:\Qt\4.4.3\mkspecs\features\resources.prf:
    c:\Qt\4.4.3\mkspecs\features\uic.prf:
    c:\Qt\4.4.3\mkspecs\features\yacc.prf:
    c:\Qt\4.4.3\mkspecs\features\lex.prf:
    c:\Qt\4.4.3\lib\qtmaind.prl:
    qmake: qmake_all FORCE
    	@$(QMAKE) -win32 -o Makefile premier_pa.pro
     
    qmake_all: FORCE
     
    make_default: debug-make_default release-make_default FORCE
    make_first: debug-make_first release-make_first FORCE
    all: debug-all release-all FORCE
    clean: debug-clean release-clean FORCE
    distclean: debug-distclean release-distclean FORCE
    	-$(DEL_FILE) Makefile
     
    debug-mocclean: $(MAKEFILE).Debug
    	$(MAKE) -f $(MAKEFILE).Debug mocclean
    release-mocclean: $(MAKEFILE).Release
    	$(MAKE) -f $(MAKEFILE).Release mocclean
    mocclean: debug-mocclean release-mocclean
     
    debug-mocables: $(MAKEFILE).Debug
    	$(MAKE) -f $(MAKEFILE).Debug mocables
    release-mocables: $(MAKEFILE).Release
    	$(MAKE) -f $(MAKEFILE).Release mocables
    mocables: debug-mocables release-mocables
    FORCE:
     
    $(MAKEFILE).Debug: Makefile
    $(MAKEFILE).Release: Makefile
    et je ne sais pas qu'elle est le role de ce fichier dans mon projet?

  12. #12
    Membre habitué Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Points : 143
    Points
    143
    Par défaut
    C'est le fichier de configuration de la compilation, etc ..

    Il répertorie les différents sources, les librairies qui devront être utilisées, et les options de compile.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    j'ai pas encore trouvé une réponse sur ma question

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Le fichier Makefile est généré par le fichier premier_pa.pro via la commande qmake.
    Regarde au début du Makefile, c'est écrit dedans.

    C'est ce fichier premier_pa.pro qui doit contenir la liste des sources de ton programme et il semblerait qu'il y manque la référence à asf.c
    les fichiers .pro ont généralement une ligne du genre
    SOURCES += fichier1.cpp fichier2.cpp etc...

    Au passage asf.c désigne un fichier en langage C et non pas C++, alors que Qt est du C++.
    Mixer les deux langages complique les choses, surtout quand on débute.
    C'est pourquoi je te suggère de renommer ton asf.c en asf.cpp avant tout chose, et le garder comme ça (si g++ le compile sans problème).

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 12h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 11h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 19h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10

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