Борьба с Xcode 4 - PullRequest
       30

Борьба с Xcode 4

1 голос
/ 29 октября 2011

Я недавно скачал Xcode 4, и теперь два моих проекта, которые работали отлично, прежде чем начали давать мне ошибки.Обе ошибки эффективно связаны с опциями связывания, но я не могу понять, как изменить эти опции и избавиться от ошибок.

Первая проблема связана с проектом, написанным на C ++ с использованием SDL_ttf и SDL_image.рамки.Проект строится правильно, но когда я пытаюсь его запустить, на консоли выдается следующее предупреждение:

предупреждение: невозможно прочитать символы для @executable_path /../ Frameworks / SDL_ttf.framework / Versions / A / SDL_ttf (файл не найден).предупреждение: невозможно прочитать символы из "SDL_ttf" (еще не отображены в памяти).предупреждение: невозможно прочитать символы для @executable_path /../ Frameworks / SDL_image.framework / Versions / A / SDL_image (файл не найден).предупреждение: невозможно прочитать символы из «SDL_image» (еще не отображены в памяти).

Поскольку файлы не найдены, исполняемый файл не может загрузить любые изображения, заставляя его сразу же выйти, когдаЯ пытаюсь загрузить изображения.Я думаю, что проблема здесь в том, что фреймворки находятся не в каталоге над исполняемым файлом, а в /Library/Framework/, который раньше работал нормально в Xcode 3.2.Как мне решить эту проблему?

Вторая проблема возникает при компиляции приложения, написанного для iOS.Наряду с предупреждением об устаревшем коде на iOS 5, о котором я расскажу позже, он не может быть собран из-за ошибки компоновщика, которую я не имею ни малейшего понятия о том, как ее решить, он говорит:

ld: библиотека не найдена для -lz.1.2.3 Команда /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang завершилась неудачно с кодом выхода 1

1 Ответ

1 голос
/ 30 октября 2011

Я могу ответить на второй вопрос.

-lz.1.2.3

должно быть

-lz

Возможно, вы случайно добавили zlib.1.2.3.dylib в двоичный файл ссылки проекта с помощьюбиблиотеки "фаза сборки.Вы должны использовать стандартный zlib без какой-либо версии в его имени файла или просто добавить -lz к другим флагам компоновщика в настройках сборки и не добавлять zlib на этапе сборки «связать двоичные файлы с библиотеками».

Что касаетсяпропущенные фреймворки, я думаю, это связано с относительным путем, т. е. если вы можете избавиться от части /../ и вместо этого указать абсолютный путь, который может решить проблему.

...