Включить заголовки из добавленных фреймворков на Xcode
Я хочу работать с некоторыми фреймворками, такими как glew
и cg
, поэтому я добавил вручную
необходимые рамки для моего проекта, щелкнув правой кнопкой мыши проект → Добавить файлы в...
и выбирая правильную структуру. Проблема в том, что когда я пытаюсь включить файлы заголовков,
Xcode не может найти ни одного из них. Надеюсь, эта картина поможет понять:
![enter image description here]()
и
![enter image description here]()
Указанная ошибка относится к структуре glew
, но это также происходит на cg
.
Как вы можете видеть слева, были добавлены необходимые фреймворки.
Любая идея о том, как я могу включить эти заголовки?
После попытки добавления файлов заголовков вручную я получил ошибку архитектуры:
![enter image description here]()
Я не знаю, как это должно выглядеть.
Спасибо!
Ответы
Ответ 1
Перед запуском удалите фреймворк и все файлы, которые вы добавили, пытаясь заставить его работать.
Затем вам нужно добавить фреймворки в Build Phases
вашей цели. Затем перейдите в Link Binary With Libraries
и выберите свою структуру.
Это должно сделать это. Ваши заголовки должны быть доступны как автоматическое завершение после каждого #import directive.
Если он не работает (иногда это происходит), есть дополнительные шаги, которые я могу вам предоставить.
Дополнительные шаги:
Перейдите в настройки вашего проекта в настройках сборки:
- Заполните
Framework Search Paths
с помощью пути к вашей инфраструктуре
- Сделайте то же самое с
User Header Search Path
Затем он должен работать. Если это не так, вам нужно будет добавить полный путь к заголовку в директиве #import
. Пример:
#import "/path/to/my/header.h"
Документация Apple доступна здесь:
- В навигаторе проекта выберите
ваш проект
- Выберите цель
- Выберите вкладку "Сборка фаз"
- Откройте 'Link Binaries With Libraries'
расширитель
- Нажмите кнопку "+"
- Выберите фреймворк
- (необязательно) Перетащите добавленный
рамки для группы "Frameworks"
Ответ 2
В моем случае я добавил Framework Search Paths
для Target, но его нужно добавить в Project
![enter image description here]()
Также Always Search Users Path
должен быть yes
Ответ 3
Для тех, автозаполнение которых не выполняется после добавления фреймворка.
Я использовал для добавления фреймворков, перейдя в Build Phases
и выбрав параметр Link Binary with Libraries
. Теперь в XCode 6.1, хотя проект строился нормально, автозаполнение в XCode не работало.
Итак, что нужно сделать:
- Удалите уже добавленную структуру из
Project Navigator
, а также из Link Binary with Libraries
.
- Добавить фреймворк для проекта просто
File
→ Add Files to
в XCode.
И автозапуск начнет работать.
Ответ 4
В моем случае внешняя инфраструктура была загружена с помощью Windows и добавлена в проект. Затем он был перенесен в OSX, где был построен проект Xcode, и внешняя структура не загружалась должным образом. Я предполагаю, что это связано с тем, что Windows изменяет папку фрейма как обычную папку, с которой OSX возникает проблема.
Решение для меня состояло в том, чтобы просто загрузить фреймворк с помощью OSX и перетащить его в папку фреймворка в проекте XCode.