Я недавно обновился до iPhone SDK 4.0 и больше не могу создать свой проект для симулятора iPhone.Проблема в том, что ld:
"_OBJC_CLASS_$_Book", referenced from:
objc-class-ref-to-Book in Category.o
(maybe you meant: ...)
ld: symbol(s) not found
collect2: ld returned 1 exit status
больше не может найти классы одной из моих собственных библиотек. Я уже читал некоторые другие посты о подобных проблемах, например, здесь .«К сожалению», моя проблема не имеет ничего общего с платформой SDK, но с моей собственной библиотекой, поэтому упомянутые здесь решения здесь не применимы.
Библиотека включена в «Связать двоичные файлы с библиотеками» моегоtarget, пути поиска в библиотеке правильные (проверили это с помощью XCode и с помощью текстового редактора прямо в файле моего проекта) и правильно добавили в команду gcc.
Я использую iPhone Simulator 3.2 в качестве базового SDK, нота же проблема возникает с SDK 4.0.Опять же, это работает с моей целью устройства, но не с моей целью симулятора.Это работало с обоими, хотя, прежде чем я обновил с iPhone SDK 3.2 до 4.0.Я также смог воспроизвести эту ошибку, создав новый проект только с одним файлом и связанной библиотекой.Тем не менее, библиотека должна быть в порядке, так как она работала с симулятором 3.2, прежде чем я обновил XCode и мой SDK.
Дополнительные факты: Mac OS X 10.6.3, 64-битный XCode 3.2.3, iPhone OS 3.2, GCC4.2
Любая помощь будет принята с благодарностью.РЕДАКТИРОВАТЬ:
После переустановки SDK 3.2 все снова заработало как положено.Следует отметить, что SDK в папке /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs перезаписываются при каждой установке.Затем я попытался переустановить SDK 4.0 снова и возникла та же ошибка, что и выше.Я ничего не менял в своем проекте и всегда использовал 3.2 в качестве базового SDK.
Поэтому проблему можно сузить до следующих параметров:
- Apple изменила sth.в Simulator SDK 3.2, который вызывает проблему
- , изменение в XCode 3.2.3 вызывает проблему
- неправильные / отсутствующие флаги компилятора при сборке моей собственной библиотеки (однако эти флаги будут вызывать толькопроблемы с измененным SDK или измененной IDE)
Я также сделал diff для папки на /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk как для старого, так и дляновая версия этой папки.Оказалось, что внутри «одного и того же» SDK действительно есть небольшие изменения.Тем не менее, я все еще думаю, что это проблема флага IDE / компилятора.
У кого-нибудь есть идеи?Я не хочу придерживаться 3.2 навсегда ...