Две цели, два файла заголовка с тем же именем, как использовать каждый заголовок для правильной цели?
Хорошо, вот что я пробовал.
У меня есть файлы заголовков в двух отдельных каталогах IRL. Они называются одинаковыми, но находятся в двух разных местах.
Я хочу включить только соответствующий заголовочный файл для каждой цели. Допустим, для упрощения объяснения, что заголовочный файл называется "Config.h".
Итак, у меня есть:
${PRODUCT_DIR}/Header1/Config.h
и
${PRODUCT_DIR}/Header2/Config.h
Эти файлы отображаются в LHS Xcode также в двух разных группах (Header1 и Header2, которые указывают на папки IRL).
Итак, теперь все, что мне нужно сделать, - это сделать Xcode выбрать правильный из правой папки для каждой цели.
Target1
и
Target2
Я попытался добавить путь к User Header Search Paths
для каждой цели, но по-прежнему выбирал неправильный. Я также пытался переключить "Всегда искать пути пользователя", который также не имеет эффекта.
Итак, мой вопрос: это потому, что они находятся в каталоге Project? Или это потому, что они находятся в Xcode в файловом менеджере LHS, поэтому Xcode копирует их в папку сборки?
Странная вещь - это выбор файлов заголовков из папки с фамилией в алфавитном порядке...
В предыдущих версиях Xcode я уверен, что вы можете выбрать, какие заголовки нужно скопировать в папку сборки.
В любом случае.. кто-нибудь знает, как я могу это исправить, чтобы я мог выбрать подходящий заголовочный файл для цели?
Большое спасибо.
Ответы
Ответ 1
Проблема, которая у меня была, была в 2 раза:
-
Вам нужно удалить файлы заголовков из проекта. Если они находятся в Xcode, в диспетчере файлов, они автоматически будут включены в проект.
-
Вам необходимо использовать относительные пути к вашим папкам в "Пути поиска заголовков пользователей". Я использовал ${PROJECT_DIR}/path/to/header/folder
, который дал правильный путь, но, похоже, не работал должным образом. Изменение записи на ./path/to/header/folder
вместо этого работало нормально.
Ответ 2
У меня 4 цели в 1 proyect и более 40 заголовков, лучшее решение в XCode 8
Я считаю, что лучшим решением является изменение следующего тега:
Always Search user Paths
Да, все было хорошо для меня:
![введите описание изображения здесь]()