Question

In my current project we need to use both live555 and ffmpeg libraries in the same project. We are able to build and run sample for both projects without issues, but when merging both projects into the project the following compiler errors were encountered:

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)

I should have included all the required files so I am a bit dumbfounded by this, any suggestion is welcome, thanks.

Was it helpful?

Solution

Yes you can combine them quite successfully. I find the best way is to create a workspace, merging the ffmpeg and the live555 libraries.

here's an example.enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top