2011-08-23 3 views
0

Je travaille sur une application pour diffuser de la vidéo en direct sur iPhone à partir de caméras IP via rtsp. J'utilise des projets open source comme live555, DecoderWrapper et RTSPClient. Je reçois l'erreur suivante lors de la compilation de mon projet.Erreur de compilation: symboles indéfinis pour l'architecture i386

Undefined symbols for architecture i386: 

    "_av_register_all", referenced from: 

     +[VideoDecoder staticInitialize] in libDecoderWrapper.a(VideoDecoder.o) 

    "_avcodec_init", referenced from: 

     +[VideoDecoder staticInitialize] in libDecoderWrapper.a(VideoDecoder.o) 

    "_av_log_set_callback", referenced from: 

    +[VideoDecoder registerLogCallback:] in libDecoderWrapper.a(VideoDecoder.o) 

    "_avcodec_find_decoder", referenced from: 

    -[VideoDecoder initWithCodec:colorSpace:width:height:privateData:] in libDecoderWrapper.a(VideoDecoder.o) 

"_avcodec_alloc_context", referenced from: 

    -[VideoDecoder initWithCodec:colorSpace:width:height:privateData:] in  libDecoderWrapper.a(VideoDecoder.o) 

    "_av_malloc", referenced from: 

     -[VideoDecoder initWithCodec:colorSpace:width:height:privateData:] in libDecoderWrapper.a(VideoDecoder.o) 

    -[VideoDecoder decodeFrame:] in libDecoderWrapper.a(VideoDecoder.o) 

"_avcodec_alloc_frame", referenced from: 

    -[VideoDecoder initWithCodec:colorSpace:width:height:privateData:] in libDecoderWrapper.a(VideoDecoder.o) 

"_avcodec_open", referenced from: 

    -[VideoDecoder initWithCodec:colorSpace:width:height:privateData:] in libDecoderWrapper.a(VideoDecoder.o) 

    "_avcodec_decode_video2", referenced from: 

     -[VideoDecoder decodeFrame:] in libDecoderWrapper.a(VideoDecoder.o) 

    "_avpicture_get_size", referenced from: 

     -[VideoDecoder decodeFrame:] in libDecoderWrapper.a(VideoDecoder.o) 

    "_avpicture_fill", referenced from: 

     -[VideoDecoder decodeFrame:] in libDecoderWrapper.a(VideoDecoder.o) 

    "_sws_getContext", referenced from: 

    -[VideoDecoder decodeFrame:] in libDecoderWrapper.a(VideoDecoder.o) 

"_sws_scale", referenced from: 

    -[VideoDecoder getDecodedFrame] in libDecoderWrapper.a(VideoDecoder.o) 

"_avpicture_free", referenced from: 

    -[VideoDecoder getDecodedFrame] in libDecoderWrapper.a(VideoDecoder.o) 

"_avpicture_alloc", referenced from: 

    -[VideoDecoder getDecodedFrame] in libDecoderWrapper.a(VideoDecoder.o) 

    "_av_picture_copy", referenced from: 

    -[VideoDecoder getDecodedFrame] in libDecoderWrapper.a(VideoDecoder.o) 

    "_av_free", referenced from: 

    -[VideoDecoder dealloc] in libDecoderWrapper.a(VideoDecoder.o) 

    "_avcodec_close", referenced from: 

    -[VideoDecoder dealloc] in libDecoderWrapper.a(VideoDecoder.o) 

ld: symbol(s) not found for architecture i386 

collect2: ld returned 1 exit status 

J'ai déjà essayé différentes solutions comme vérifier si j'avais copié des frameworks dans mes projets. J'ai vérifié et il n'y a rien dans les "chemins de recherche de framework". Comme j'utilise "ffmpeg" dans mon projet, j'ai aussi essayé de compiler la bibliothèque pour i386 et j'ai ensuite ajouté ces bibliothèques à mon projet. Mais rien ne fonctionne! Quelqu'un peut-il m'aider s'il vous plaît? Je peux fournir des détails de code si nécessaire.

+0

Voir si vous avez manqué d'ajouter un cadre – EmptyStack

+0

@EmptyStackJ'ai vérifié et revérifié et je ne pense pas qu'il me manque un cadre. – Anila

Répondre

0

Vérifiez bien votre compilation car elle devrait être compilée pour le bras non i386. Le fait qu'il amène des références d'architecture pour i386 me fait penser qu'il essaye de compiler pour le bureau pas iOS.

+0

En fait je veux le construire pour le simulateur d'abord et je l'ai essayé parce que dans d'autres messages il a été suggéré de le faire pour les simulateurs. – Anila

+0

Ah mon mauvais désolé, si vous regardez [ici] (http://blog.iosplace.com/?p=20) il y a un comment sur la construction de bibliothèques comme les gros contenant les symboles nécessaires à la fois pour le bras et i386, cela devrait vous aider à aller un peu plus loin. –

+0

Merci beaucoup pour le lien. Je vais essayer et j'espère que mon problème sera résolu. – Anila

Questions connexes