2009-04-14 3 views
17

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

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

ответ

14

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

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

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

Так

#include "bar.h" 

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

#include <bar.h> 

не будет.

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

<?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> 

Надежда, что помогает.

0

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

~/include 

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

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

Я хочу * * глобальный параметр, так что я не должен добавить тот же путь для каждого Xcode проекта. –

+1

Хорошо, вы на самом деле не говорили об этом. Как сказал Джесси, вы можете также установить настройки сборки в своей среде, и я думаю, это работает на вас. –

-3

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

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

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

+1

Настройка переменных окружения * * влияет на настройки сборки. Он довольно четко говорит об этом в документах Apple, и он работает. –

+1

Ваше утверждение не соответствует практическому использованию. -1 для угадывания. – ptoinson

0

Просто выберите .c или .m файл в вашей «группы & Files Tab» и выберите «Get Info» через ПКМ, затем под «строить» вы можете добавить дополнительные флаги компилятора, как -I для дополнительной включают SearchPath.

1

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

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

enter image description here