如何为xcode添加全局包含路径

时间:2009-04-14 19:30:59

标签: xcode macos include

我想在使用Xcode时将〜/ include添加到所有项目的包含路径中,比如在Linux中设置环境变量CPLUS_INCLUDE_PATH。 (有关相关Linux问题,请参阅here。)

这在Xcode中是否可行?我尝试设置上面的环境变量,但它似乎不起作用。 (如果可能的话,我还想设置相关的路径,比如LIBRARY_PATH和LD_LIBRARY_PATH。)

5 个答案:

答案 0 :(得分:15)

根据Apple's Docs,您可以使用environment variable为任何构建设置提供默认值。

在这种情况下,您需要设置HEADER_SEARCH_PATHS。由于某些原因我不明白,这不起作用。它适用于其他构建设置(例如,OTHER_CFLAGS),但不适用于HEADER_SEARCH_PATHS。您可以通过在构建设置窗口中打开研究助手(左下方的书籍按钮)来查看任何设置的变量名称。

一个可行的var是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>

希望有所帮助。

答案 1 :(得分:1)

对于任何想要实现 this或任何其他 hack of ~/.MacOSX/environment.plist 全球环境变量的祝福darlings em>在这个后山狮世界中,查看EnvPane - An OS X preference pane for environment variables

  

EnvPane是Mac OS X 10.8(Mountain Lion)的首选项窗格,可让您为图形和终端会话中的所有程序设置环境变量。它不仅可以恢复对Mountain Lion中〜/ .MacOSX / environment.plist的支持,还可以立即发布您对环境的更改,而无需注销和重新登录。这甚至适用于手动编辑所做的更改〜/ .MacOSX / environment.plist,而不仅仅是通过首选项窗格进行的更改。

enter image description here

答案 2 :(得分:0)

HEADER_SEARCH_PATHS构建设置添加到Xcode项目中。此设置采用空格分隔的路径列表,如果路径以双星(**)结尾,则它将以递归方式搜索子目录。因此,要回答您的示例,请将HEADER_SEARCH_PATHS设置为:

~/include

如果要包含多个路径,可以将其设置为:

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

答案 3 :(得分:0)

只需在“群组和文件标签”中选择.c或.m文件,然后通过RMB选择“获取信息”, 然后在“构建”下,您可以添加额外的编译器标志,如-I,用于其他包含搜索路径。

答案 4 :(得分:-3)

构建设置不是环境变量,环境变量不是构建设置。设置环境变量不会影响Xcode构建。

USER_HEADER_SEARCH_PATHS是一个构建设置,将路径列表放入其中将实现您的目标。如果在目标的检查器中设置该值,它将仅对该目标生效(并且仅适用于您指定的构建配置)。如果在项目检查器中进行设置,它将在项目中的所有目标中生效,除非目标使用自己的设置覆盖它。

对于特定于您的计算机的路径,您应该在Xcode首选项中定义源树,例如LOCAL_INCLUDE = ~/include。然后在项目中定义USER_HEADER_SEARCH_PATHS = $(LOCAL_INCLUDE)。这样,其他人可以打开您的项目并通过将其源树设置为其计算机上本地包含的特定位置来构建它,而无需更改项目文件。