Не найден символ ссылки на класс objc

#objective-c

#objective-c

Вопрос:

 "_OBJC_CLASS_$_InputAmountVC", referenced from:

objc-class-ref-to-InputAmountVC in p0931917_prac_2AppDelegate.o

ld: symbol(s) not found
collect2: ld returned 1 exit status

Ld "build/Debug-iphonesimulator/p0931917 prac 2.app/p0931917 prac 2" normal i386
cd "/Volumes/Storage/p0931917 prac 2"
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk "-L/Volumes/Storage/p0931917 prac 2/build/Debug-iphonesimulator" "-F/Volumes/Storage/p0931917 prac 2/build/Debug-iphonesimulator" -filelist "/Volumes/Storage/p0931917 prac 2/build/p0931917 prac 2.build/Debug-iphonesimulator/p0931917 prac 2.build/Objects-normal/i386/p0931917 prac 2.LinkFileList" -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework CoreGraphics -o "/Volumes/Storage/p0931917 prac 2/build/Debug-iphonesimulator/p0931917 prac 2.app/p0931917 prac 2"

dyld: shared cached file was build against a different libSystem.dylib, ignoring cache
dyld: shared cached file was build against a different libSystem.dylib, ignoring cache
dyld: shared cached file was build against a different libSystem.dylib, ignoring cache
dyld: shared cached file was build against a different libSystem.dylib, ignoring cache
dyld: shared cached file was build against a different libSystem.dylib, ignoring cache
Undefined symbols:
  "_OBJC_CLASS_$_InputAmountVC", referenced from:
      objc-class-ref-to-InputAmountVC in p0931917_prac_2AppDelegate.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
  

У меня возникла эта ошибка, пожалуйста, помогите.

Ответ №1:

Компоновщик не находит объектный код (двоичный) для этого конкретного класса.

Если это ваш код, убедитесь, что у .m/.mm/.c/.cpp исходный файл принадлежит цели, которую вы создаете.

Если он находится в библиотеке, убедитесь, что компоновщик может его найти (путь поиска в библиотеке и т.д.) И что он был фактически собран с теми же настройками.

Последний абзац о dyld выглядит так, будто ваша проблема заключается именно в этом: dyld был собран для другой версии libSystem.dylib, отличной от вашей текущей цели, поэтому в основном в нем нет нужного вам кода. (Другая архитектура или базовый SDK?)