Как добавить глобальный путь include для xcode

Я хотел бы добавить ~/include в мой путь include для всех проектов при использовании Xcode, что-то вроде установки переменной среды CPLUS_INCLUDE_PATH в Linux. (См. здесь для соответствующего вопроса Linux.)

Возможно ли это в Xcode? Я попытался установить вышеуказанную переменную среды, но она не работает. (И если это возможно, я также хотел бы установить связанные пути, например LIBRARY_PATH и LD_LIBRARY_PATH.)

Ответ 1

В соответствии с Apple Docs вы можете указать значение по умолчанию для любой настройки сборки с помощью переменная среды.

В этом случае вам нужно установить HEADER_SEARCH_PATHS. По какой-то причине я не понимаю, это не работает. Он отлично работает для других настроек сборки (например, OTHER_CFLAGS), но не для HEADER_SEARCH_PATHS. Вы можете увидеть, какое имя переменной для любого параметра, открыв помощника исследователя в окне настроек сборки (кнопка книги внизу слева.)

Один var, который работает, USER_HEADER_SEARCH_PATHS, который похож на то, что вы хотите, но работает только для путей в двойных кавычках (не в угловых скобках.)

Итак,

#include "bar.h"

будет работать, но

#include <bar.h>

не будет.

Плагин настроек построения, указанный в приведенной выше статье об переменных окружения, должен выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>USER_HEADER_SEARCH_PATHS</key>
    <string>~/test</string>
</dict>
</plist>

Надеюсь, что это поможет.

Ответ 2

Для любого из вас, благословенных любимцев, пытающихся достичь этого, или любого другого взлома ~/.MacOSX/environment.plist, известного как глобальные экологические переменные в этом мире после смерти, посмотрите EnvPane - панель предпочтений OS X для переменных среды

EnvPane - это панель предпочтений для Mac OS X 10.8 (Mountain Lion), которая позволяет вам устанавливать переменные среды для всех программ как на графических, так и на терминальных сеансах. Мало того, что он восстанавливает поддержку ~/.MacOSX/environment.plist в Mountain Lion, он также немедленно публикует ваши изменения в среде без необходимости выхода из системы и обратно. Это работает даже для изменений, сделанных вручную путем редактирования ~/.MacOSX/environment.plist, а не только изменения, сделанные с помощью панели предпочтений.

enter image description here

Ответ 3

Добавьте параметр сборки HEADER_SEARCH_PATHS в проект Xcode. Этот параметр принимает разделенный пробелами список путей, и если путь заканчивается двойной звездой (**), он будет искать подкаталоги рекурсивно. Чтобы ответить на ваш пример, установите HEADER_SEARCH_PATHS в:

~/include

Если у вас было несколько путей для включения, вы должны установить его так:

~/include ~/my_other_includes/** /usr/local/special_frameworks/**

Ответ 4

Просто выберите файл .c или .m в своей вкладке "Группы и файлы" и выберите "получить информацию" через RMB, то в разделе "build" вы можете добавить дополнительные флагов компилятора, например, -I, для дополнительного включения пути поиска.

Ответ 5

Параметры сборки не являются переменными среды, а переменные среды не являются настройками сборки. Установка переменной окружения не влияет на сборки Xcode.

USER_HEADER_SEARCH_PATHS - это параметр построения, и размещение в нем списка путей приведет к тому, что вы хотите. Если вы установите значение в целевом инспекторе, оно вступит в силу только для этой цели (и только для назначенных конфигураций сборки). Если вы установите его в инспекторе проекта, он вступит в силу во всех целях проекта, если только цель не переопределит его с его собственной настройкой.

Для путей, специфичных для вашего компьютера, вы, вероятно, должны определить Дерево источников в настройках Xcode, например LOCAL_INCLUDE = ~/include. Затем определите USER_HEADER_SEARCH_PATHS = $(LOCAL_INCLUDE) в проекте. Таким образом, другие люди могут открыть ваш проект и построить его, установив исходное дерево на конкретное местонахождение локального компьютера на своем компьютере, не изменяя файл проекта.