Ошибка компиляции: неопределенные символы для архитектуры i386 - PullRequest
0 голосов
/ 23 августа 2011

Я работаю над приложением для потоковой передачи живого видео на iPhone с IP-камер через rtsp. Я использую проекты с открытым исходным кодом, такие как live555, DecoderWrapper и RTSPClient. Я получаю следующую ошибку при компиляции моего проекта.

   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

Я уже пробовал разные решения, например, проверял, скопировал ли я какие-либо фреймворки в свои проекты. Я проверил, и нет ничего в "Каркасные пути поиска". Поскольку я использую «ffmpeg» в своем проекте, я также попытался скомпилировать библиотеку для i386, а затем добавил эти библиотеки в свой проект. Но ничего не работает! Может кто-нибудь, пожалуйста, помогите мне? Я могу предоставить детали кода при необходимости.

1 Ответ

0 голосов
/ 23 августа 2011

Дважды проверьте ваши вещи для компиляции, так как они должны компилироваться для arm, а не i386.Тот факт, что он вызывает ссылки на архитектуру для i386, заставляет меня думать, что он пытается скомпилировать для десктопа, а не iOS.

...