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

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

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

5 ответов

Решение

Согласно Документам Apple, вы можете указать значение по умолчанию для любого параметра сборки, используя переменную окружения.

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

Один вар, который работает 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>

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

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

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

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

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

~/include

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

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

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

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

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

Другие вопросы по тегам