0

在我当前的项目中,我们需要在同一个项目中同时使用 live555 和 ffmpeg 库。我们能够毫无问题地为两个项目构建和运行示例,但是在将两个项目合并到项目中时遇到以下编译器错误:

Undefined symbols for architecture armv7:
  "av_free_packet(AVPacket*)", referenced from:
      -[MyRtspClient readFFmpegAudioFrameAndDecode] in MyRtspClient.o
  "av_read_frame(AVFormatContext*, AVPacket*)", referenced from:
      -[MyRtspClient readFFmpegAudioFrameAndDecode] in MyRtspClient.o
  "av_strerror(int, char*, unsigned long)", referenced from:
      -[MyRtspClient readFFmpegAudioFrameAndDecode] in MyRtspClient.o
  "av_dict_set(AVDictionary**, char const*, char const*, int)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_init_packet(AVPacket*)", referenced from:
      -[MyRtspClient readFFmpegAudioFrameAndDecode] in MyRtspClient.o
  "avcodec_register_all()", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_register_all()", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_log_set_level(int)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_log(void*, int, char const*, ...)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "avformat_alloc_context()", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "avformat_network_deinit()", referenced from:
      -[MyRtspClient destroyFFmpegAudioStream] in MyRtspClient.o
  "avformat_open_input(AVFormatContext**, char const*, AVInputFormat*, AVDictionary**)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "avformat_find_stream_info(AVFormatContext*, AVDictionary**)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_find_best_stream(AVFormatContext*, AVMediaType, int, int, AVCodec**, int)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_dump_format(AVFormatContext*, int, char const*, int)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "avcodec_open2(AVCodecContext*, AVCodec const*, AVDictionary**)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "avformat_network_init()", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "av_dict_free(AVDictionary**)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
  "avcodec_find_decoder(AVCodecID)", referenced from:
      -[MyRtspClient initFFmpegAudioStream] in MyRtspClient.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我应该包含所有必需的文件,所以我对此有点傻眼,欢迎任何建议,谢谢。

4

1 回答 1

0

是的,您可以将它们非常成功地结合起来。我发现最好的方法是创建一个工作区,合并 ffmpeg 和 live555 库。

这是一个例子。在此处输入图像描述

于 2014-01-24T17:06:56.747 回答