示例:我导入这样的框架:
#import <Cocoa/Cocoa.h>
那么“Cocoa / Cocoa.h”的路径是什么?我的意思是...... Xcode从哪里开始寻找?这个配置在哪里?这实际上是一条路还是什么?什么是“Cocoa / Cocoa.h”真的吗?那里有命名空间和框架?还有什么?
答案 0 :(得分:4)
这是在xcode文档中:
2.3搜索路径 GCC在几个不同的地方寻找标题。在普通的Unix系统上,如果你不指示它,它将在#include中查找请求的头文件:
/usr/local/include
libdir/gcc/target/version/include
/usr/target/include
/usr/include
对于C ++程序,它首先会查看/ usr / include / g ++ - v3。在上面,target是系统的规范名称,GCC被配置为编译代码;通常但并不总是与它运行的系统的规范名称相同。 version是正在使用的GCC版本。
&LT; /剪断&GT;
答案 1 :(得分:1)
问题并不完全正确......当您创建新的Xcode项目时,Xcode项目包括对Foundation框架和其他标准框架的引用,具体取决于所选项目的特定类型。如果要使用其他框架,则必须将其明确添加到项目中。
当您向Xcode项目添加框架时,它会提供可供选择的框架列表,但您可以从任意位置添加框架,而不是Xcode列出的框架。 Xcode从“〜/ Library / Frameworks”,“/ Library / Frameworks”和“/ System / Library / Frameworks”的内容中检索框架列表。链接时,将从这些位置解析使用GCC的“-framework”选项指定的框架。您可以通过修改DYLD_FALLBACK_FRAMEWORK_PATH环境变量来扩展GCC将通过“-framework”选项解析框架的位置列表。
编辑:
为了回答你的第二个问题,“Cocoa /”是一条道路。基本上,每个Framework包都有一个名为“Headers”的特殊文件夹,其中包含该框架的标头。当框架被添加到Xcode项目时,“标题”的内容被添加到标准标题搜索路径中,但其名称前缀为框架的名称后跟斜杠(即“Cocoa / Cocoa.h”结果到“/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h”而不是“/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa/Cocoa.h”)