Ошибка связывания при создании iOS-приложения с открытым исходным кодом - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь скомпилировать iOS-приложение с открытым исходным кодом под названием Partita, проект кажется мертвым в течение двух лет, и похоже, что обновления некоторых вещей сломали одну или две вещи.

вот что я уже сделал (возможно, я забыл шаг)

Одна из зависимостей (аудио-комплект) была скомпилирована со старой версией swift, поэтому я взял новейший исходный код, скомпилировал совершенно новый фреймворк и заменил старый, который мне дает pod

добавил "попробовать?" перед функцией, которая дала мне ошибку «функция выбросить, но не поймать»

возможно твик или два

В какой-то момент мне пришлось скомпилировать, чтобы отправить на свой iPhone, универсальное или виртуальное устройство выдать больше ошибок о том, что AudioKit недоступен, не может найти объявления, т. Д. но хорошо, если я скомпилирую для реального устройства

Теперь я застрял с ошибкой связывания, вот они

Ld /Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/TuningFork.build/Objects-normal/arm64/TuningFork normal arm64
    cd "/Users/pierrick/Documents/Documents - MacBook Pro de Pierrick/Programming/Partita/Pods"
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk -L/Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Products/Debug-iphoneos/TuningFork -F/Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Products/Debug-iphoneos/TuningFork -F/Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Products/Debug-iphoneos/Chronos-Swift -F/Users/pierrick/Documents/Documents\ -\ MacBook\ Pro\ de\ Pierrick/Programming/Partita/Pods/AudioKit/iOS -filelist /Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/TuningFork.build/Objects-normal/arm64/TuningFork.LinkFileList -install_name @rpath/TuningFork.framework/TuningFork -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/TuningFork.build/Objects-normal/arm64/TuningFork_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fobjc-arc -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -Xlinker -add_ast_path -Xlinker /Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/TuningFork.build/Objects-normal/arm64/TuningFork.swiftmodule -framework AVFoundation -framework AudioKit -framework Chronos -framework AudioKit -framework Chronos -framework Foundation -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/TuningFork.build/Objects-normal/arm64/TuningFork_dependency_info.dat -o /Users/pierrick/Library/Developer/Xcode/DerivedData/Partita-doeawmfadbgytvfskorsvxjyuroj/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/TuningFork.build/Objects-normal/arm64/TuningFork

Undefined symbols for architecture arm64:
  "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:
      -[AKOperationGeneratorAudioUnit addCustomUgen:] in AudioKit(AKOperationGeneratorAudioUnit.o)
  "operator new(unsigned long)", referenced from:
      _createBoosterDSP in AudioKit(AKBooster-7854F601498F0658.o)
      -[AKOperationGeneratorAudioUnit addCustomUgen:] in AudioKit(AKOperationGeneratorAudioUnit.o)
  "vtable for __cxxabiv1::__vmi_class_type_info", referenced from:
      typeinfo for AKFrequencyTrackerDSPKernel in AudioKit(AKFrequencyTrackerAudioUnit.o)
      typeinfo for AKTesterDSPKernel in AudioKit(AKTesterAudioUnit.o)
      typeinfo for AKOperationGeneratorDSPKernel in AudioKit(AKOperationGeneratorAudioUnit.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 DSPKernel in AudioKit(AKFrequencyTrackerAudioUnit.o)
      typeinfo for AKOutputBuffered in AudioKit(AKFrequencyTrackerAudioUnit.o)
      typeinfo for AKDSPBase in AudioKit(AKBooster-7854F601498F0658.o)
      typeinfo for AKParameterRampBase in AudioKit(AKBooster-7854F601498F0658.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in AudioKit(AKFrequencyTrackerAudioUnit.o)
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for AKDSPKernel in AudioKit(AKFrequencyTrackerAudioUnit.o)
      typeinfo for AKSoundpipeKernel in AudioKit(AKFrequencyTrackerAudioUnit.o)
      typeinfo for AKBuffered in AudioKit(AKFrequencyTrackerAudioUnit.o)
      typeinfo for AKBoosterDSP in AudioKit(AKBooster-7854F601498F0658.o)
      typeinfo for AKExponentialParameterRamp in AudioKit(AKBooster-7854F601498F0658.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "___cxa_pure_virtual", referenced from:
      vtable for AKSoundpipeKernel in AudioKit(AKFrequencyTrackerAudioUnit.o)
      vtable for AKDSPKernel in AudioKit(AKDSPKernel.o)
      vtable for AKSoundpipeKernel in AudioKit(AKOperationGeneratorAudioUnit.o)
  "operator delete(void*)", referenced from:
      AKFrequencyTrackerDSPKernel::~AKFrequencyTrackerDSPKernel() in AudioKit(AKFrequencyTrackerAudioUnit.o)
      AKTesterDSPKernel::~AKTesterDSPKernel() in AudioKit(AKTesterAudioUnit.o)
      -[AKOperationGeneratorAudioUnit addCustomUgen:] in AudioKit(AKOperationGeneratorAudioUnit.o)
      -[AKOperationGeneratorAudioUnit .cxx_destruct] in AudioKit(AKOperationGeneratorAudioUnit.o)
      AKOperationGeneratorDSPKernel::~AKOperationGeneratorDSPKernel() in AudioKit(AKOperationGeneratorAudioUnit.o)
      AKOperationGeneratorDSPKernel::~AKOperationGeneratorDSPKernel() in AudioKit(AKOperationGeneratorAudioUnit.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in AudioKit(AKFrequencyTrackerAudioUnit.o)
  "___gxx_personality_v0", referenced from:
      -[AKFrequencyTrackerAudioUnit createParameters] in AudioKit(AKFrequencyTrackerAudioUnit.o)
      BufferedAudioBus::init(AVAudioFormat*, unsigned int) in AudioKit(AKFrequencyTrackerAudioUnit.o)
      -[AKFrequencyTrackerAudioUnit allocateRenderResourcesAndReturnError:] in AudioKit(AKFrequencyTrackerAudioUnit.o)
      BufferedAudioBus::allocateRenderResources(unsigned int) in AudioKit(AKFrequencyTrackerAudioUnit.o)
      ___50-[AKFrequencyTrackerAudioUnit internalRenderBlock]_block_invoke in AudioKit(AKFrequencyTrackerAudioUnit.o)
      -[AKFrequencyTrackerAudioUnit .cxx_destruct] in AudioKit(AKFrequencyTrackerAudioUnit.o)
      AKFrequencyTrackerDSPKernel::~AKFrequencyTrackerDSPKernel() in AudioKit(AKFrequencyTrackerAudioUnit.o)
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ошибки, похоже, происходят исключительно от AudioKit (фреймворк, который мне пришлось перекомпилировать), поэтому, возможно, именно здесь мне нужно изменить один или два параметра, чтобы он работал, честно говоря, я здесь потерян! Я только что перешел на экосистему Mac и не очень разбираюсь в структуре проектов и Xcode в целом

https://github.com/comyar/Partita вот код, который я пытаюсь скомпилировать, если он полезен

Заранее спасибо за любую помощь

1 Ответ

0 голосов
/ 05 сентября 2018

Это проблема с AudioKit.framework.

Скачать последнюю версию: https://github.com/AudioKit/AudioKit/releases

И следуйте инструкциям: https://github.com/audiokit/AudioKit/blob/master/Frameworks/README.md#using-the-compiled-frameworks-in-your-projects

Что вам нужно сделать, это добавить -lstdc++ в Other Linker Flags, и приложение будет работать без ошибок!

enter image description here

...