Файл ошибки OCUnit (SenTestingKit) не имеет необходимой архитектуры - PullRequest
1 голос
/ 09 января 2010

Я пытаюсь создать проект, который использует OCUnit для запуска тестов, но при линковке получают следующие ошибки:

ld: warning: in /Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks//SenTestingKit.framework/SenTestingKit, file is not of required architecture
Undefined symbols:
  "_STComposeString", referenced from:
      -[ReaderTest testEmptyFile] in ReaderTest.o
      -[ReaderTest testReadOneLine] in ReaderTest.o
      -[ReaderTest testReadOneLine] in ReaderTest.o

  "_OBJC_CLASS_$_SenTestCase", referenced from:
      _OBJC_CLASS_$_ReaderTest in ReaderTest.o
      _OBJC_CLASS_$_ActionUserInfoReaderTest in ActionUserInfoReaderTest.o
  "_OBJC_METACLASS_$_SenTestCase", referenced from:
      _OBJC_METACLASS_$_ReaderTest in ReaderTest.o
      _OBJC_METACLASS_$_ActionUserInfoReaderTest in ActionUserInfoReaderTest.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

Мне удалось без проблем собрать и запустить с OCUnit. Эта проблема появилась на этой неделе, но я не могу сказать, в результате чего изменения. Я попытался переустановить XCode с iPhone SDK 3.2.1, но безрезультатно.

Если я получаю информацию о /Library/Frameworks/SenTestingKit.framework/Versions/A/SenTestingKit, я получаю «Вид: исполняемый файл Unix (PowerPC)». Это, как правило, указывает на причину проблемы, так как я использую платформу Intel для архитектуры x86_64. Однако я не понимаю, как это могло сработать раньше и перестало работать ...

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 09 января 2010

Вы, кажется, создали свою собственную копию SenTestingKit, и, возможно, она имеет неправильную архитектуру. Это в /Users/alexandrebeaulieu/workspaces/Project/build/Debug/SenTestingKit.framework.

Когда вы используете общее место сборки, XCode предпочитает использовать любую созданную вами среду для той, которая установлена ​​в системе.

0 голосов
/ 07 мая 2012

У меня была такая же проблема, просто "казалось" из ниоткуда.Но я нашел решение, чтобы просто сделать очистку и сборку.

Product> Clean

...