In my project, I do the following steps to make video call: 
1. Download 
https://www.linphone.org/releases/ios/liblinphone-iphone-sdk-2.2.4.zip 
<http://www.linphone.org/releases/ios/liblinphone-iphone-sdk-2.2.4.zip>
2. Import liblinphone 2.2.4 to my project.
3. Import LinphoneManager.h/.m from linphone-iphone sample project.
Everything works great when HAVE_OPENH264 is not defined. 
But I need H264, so set HAVE_OPENH264 in target build setting, and uncomment 
libmsopenh264_init()  in createLinphoneCore.
Then I can not build successfully. Errors are:

Undefined symbols for architecture arm64:
  "operator new(unsigned long)", referenced from:
      msopenh264_dec_init(_MSFilter*) in 
libmsopenh264.a(libmsopenh264_la-msopenh264.o)
      msopenh264_enc_init(_MSFilter*) in 
libmsopenh264.a(libmsopenh264_la-msopenh264.o)
      _WelsCreateDecoder in libopenh264.a(welsDecoderExt.o)
      _WelsCreateSVCEncoder in libopenh264.a(welsEncoderExt.o)
      WelsEnc::WelsInitEncoderExt(WelsEnc::TagWelsEncCtx**, 
WelsEnc::TagWelsSvcCodingParam*, TagLogContext*) in libopenh264.a(encoder_ext.o)
      _WelsCreateVpInterface in libopenh264.a(WelsFrameWork.o)
      WelsVP::CreateSpecificVpInterface(IWelsVP**) in 
libopenh264.a(WelsFrameWork.o)
      ...
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for WelsDec::CWelsDecoder in libopenh264.a(welsDecoderExt.o)
      typeinfo for WelsEnc::CWelsH264SVCEncoder in 
libopenh264.a(welsEncoderExt.o)
      typeinfo for WelsVP::CVpFrameWork in libopenh264.a(WelsFrameWork.o)
      typeinfo for WelsVP::CDownsampling in libopenh264.a(downsample.o)
      typeinfo for WelsVP::IStrategy in libopenh264.a(downsample.o)
      typeinfo for WelsVP::CImageRotating in libopenh264.a(imagerotate.o)
      typeinfo for WelsVP::CVAACalculation in libopenh264.a(vaacalculation.o)
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member 
function has no definition.
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for MSOpenH264Decoder in 
libmsopenh264.a(libmsopenh264_la-msopenh264dec.o)
      typeinfo for VideoStarter in 
libmsopenh264.a(libmsopenh264_la-msopenh264enc.o)
      typeinfo for MSOpenH264Encoder in 
libmsopenh264.a(libmsopenh264_la-msopenh264enc.o)
      typeinfo for ISVCDecoder in libopenh264.a(welsDecoderExt.o)
      typeinfo for ISVCEncoder in libopenh264.a(welsEncoderExt.o)
      typeinfo for WelsEnc::CMemoryAlign in libopenh264.a(memory_align.o)
      typeinfo for WelsEnc::CWelsPreProcess in libopenh264.a(wels_preprocess.o)
      ...
  NOTE: a missing vtable usually means the first non-inline virtual member 
function has no definition.
  "___gxx_personality_v0", referenced from:
      msopenh264_dec_init(_MSFilter*) in 
libmsopenh264.a(libmsopenh264_la-msopenh264.o)
      msopenh264_enc_init(_MSFilter*) in 
libmsopenh264.a(libmsopenh264_la-msopenh264.o)
      MSOpenH264Decoder::~MSOpenH264Decoder() in 
libmsopenh264.a(libmsopenh264_la-msopenh264dec.o)
      MSOpenH264Encoder::~MSOpenH264Encoder() in 
libmsopenh264.a(libmsopenh264_la-msopenh264enc.o)
      WelsDec::CWelsDecoder::~CWelsDecoder() in libopenh264.a(welsDecoderExt.o)
      WelsDec::CWelsDecoder::~CWelsDecoder() in libopenh264.a(welsDecoderExt.o)
      _WelsCreateDecoder in libopenh264.a(welsDecoderExt.o)
      ...
  "operator delete(void*)", referenced from:
      msopenh264_dec_init(_MSFilter*) in 
libmsopenh264.a(libmsopenh264_la-msopenh264.o)
      msopenh264_enc_init(_MSFilter*) in 
libmsopenh264.a(libmsopenh264_la-msopenh264.o)
      MSOpenH264Decoder::~MSOpenH264Decoder() in 
libmsopenh264.a(libmsopenh264_la-msopenh264dec.o)
      VideoStarter::~VideoStarter() in 
libmsopenh264.a(libmsopenh264_la-msopenh264enc.o)
      MSOpenH264Encoder::~MSOpenH264Encoder() in 
libmsopenh264.a(libmsopenh264_la-msopenh264enc.o)
      WelsDec::CWelsDecoder::~CWelsDecoder() in libopenh264.a(welsDecoderExt.o)
      WelsDec::CWelsDecoder::~CWelsDecoder() in libopenh264.a(welsDecoderExt.o)
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

>lipo -info libmsopenh264.a
>Architectures in the fat file: libmsopenh264.a are: armv7 i386 arm64 
The arm64 is supported, so how can I fix this build error? (Disable arm64 in 
"Valid Architectures" not work as well)
_______________________________________________
Linphone-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/linphone-users

Reply via email to