Я использую Xcode для написания проекта iPhone и использую внешнюю библиотеку.Я добавил файл проекта Xcode в родительскую цель, скорректировал путь поиска заголовка и установил его как прямую зависимость в цели сборки родителя.
Теперь происходит странная вещь: я могу открыть библиотеку и скомпилировать ее безпроблемы.Библиотека ссылается на некоторые фреймворки, например AVFoundation.framework
.
. Я очищаю цель и начинаю создавать родительский проект.В моих результатах сборки я вижу, что он собирает библиотеку, но затем происходит сбой связывания с этими сообщениями об ошибках:
Undefined symbols:
"_AVCaptureSessionPresetMedium", referenced from:
_AVCaptureSessionPresetMedium$non_lazy_ptr in libZXingWidget.a(ZXingWidgetController.o)
(maybe you meant: _AVCaptureSessionPresetMedium$non_lazy_ptr)
"_CVPixelBufferGetHeight", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_CVPixelBufferLockBaseAddress", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_AudioServicesPlaySystemSound", referenced from:
-[ZXingWidgetController presentResultForString:] in libZXingWidget.a(ZXingWidgetController.o)
"_AudioServicesCreateSystemSoundID", referenced from:
-[ZXingWidgetController viewWillAppear:] in libZXingWidget.a(ZXingWidgetController.o)
"_CVPixelBufferUnlockBaseAddress", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_CVPixelBufferGetBaseAddress", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_CVPixelBufferGetBytesPerRow", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_iconv_close", referenced from:
zxing::qrcode::DecodedBitStreamParser::append(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char const*, unsigned long, char const*)in libZXingWidget.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
zxing::qrcode::DecodedBitStreamParser::append(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char const*, unsigned long, char const*)in libZXingWidget.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
"_OBJC_CLASS_$_AVCaptureVideoPreviewLayer", referenced from:
objc-class-ref-to-AVCaptureVideoPreviewLayer in libZXingWidget.a(ZXingWidgetController.o)
"_iconv", referenced from:
zxing::qrcode::DecodedBitStreamParser::append(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char const*, unsigned long, char const*)in libZXingWidget.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
"_OBJC_CLASS_$_AVCaptureSession", referenced from:
objc-class-ref-to-AVCaptureSession in libZXingWidget.a(ZXingWidgetController.o)
"_OBJC_CLASS_$_AVCaptureDevice", referenced from:
objc-class-ref-to-AVCaptureDevice in libZXingWidget.a(ZXingWidgetController.o)
"_kCVPixelBufferPixelFormatTypeKey", referenced from:
_kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr in libZXingWidget.a(ZXingWidgetController.o)
(maybe you meant: _kCVPixelBufferPixelFormatTypeKey$non_lazy_ptr)
"_OBJC_CLASS_$_AVCaptureVideoDataOutput", referenced from:
objc-class-ref-to-AVCaptureVideoDataOutput in libZXingWidget.a(ZXingWidgetController.o)
"_CVPixelBufferGetWidth", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_AudioServicesDisposeSystemSoundID", referenced from:
-[ZXingWidgetController dealloc] in libZXingWidget.a(ZXingWidgetController.o)
"_OBJC_CLASS_$_AVCaptureDeviceInput", referenced from:
objc-class-ref-to-AVCaptureDeviceInput in libZXingWidget.a(ZXingWidgetController.o)
"_AVLayerVideoGravityResizeAspectFill", referenced from:
_AVLayerVideoGravityResizeAspectFill$non_lazy_ptr in libZXingWidget.a(ZXingWidgetController.o)
(maybe you meant: _AVLayerVideoGravityResizeAspectFill$non_lazy_ptr)
"_CMSampleBufferGetImageBuffer", referenced from:
-[ZXingWidgetController captureOutput:didOutputSampleBuffer:fromConnection:] in libZXingWidget.a(ZXingWidgetController.o)
"_iconv_open", referenced from:
zxing::qrcode::DecodedBitStreamParser::append(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char const*, unsigned long, char const*)in libZXingWidget.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
"_AVMediaTypeVideo", referenced from:
_AVMediaTypeVideo$non_lazy_ptr in libZXingWidget.a(ZXingWidgetController.o)
(maybe you meant: _AVMediaTypeVideo$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Я могу включить необходимые рамки в родительский проект, но я подумал, что, включив рамкив проекте библиотеки связывание будет нормальным.
Мой вопрос: Нужно ли включать все каркасы, которые мои зависимые подпроекты используют в родительском проекте, чтобы обеспечить правильное связывание, илиЯ что-то не так делаю?
Спасибо за помощь.