SRCROOT 和 PROJECT_DIR 有什么区别?
What the different between SRCROOT and PROJECT_DIR?
在Xcode中,我们要在Build Settings中配置很多路径,然后我们会处理$(SRCROOT) 和 $(PROJECT_DIR) ,但是它们之间有什么区别,你能给我举个例子吗,谢谢。
SRCROOT
& PROJECT_DIR
是相同的宏,具有相同的效果。PROJECT_DIR
在谈论框架时更有意义。
在实践中可交换,而文档在理论上做出了这些微妙的区别:
SRCROOT
Directory path. Identifies the directory containing the target’s source files: contains the path to the project file that defines the target.
SOURCE_ROOT
是 SRCROOT
的未记录的别名
PROJECT_DIR
标识包含 project (.xcodeproj
)
的目录
$(PROJECT_DIR)/build
用作创建默认值:
- 中间构建文件路径
OBJROOT
- 构建产品路径
SYMROOT
Typically these paths are not set per target, but are set per-project or per-user.
PROJECT_FILE_PATH
标识项目本身。
相当于$(PROJECT_DIR)/$(PROJECT_NAME).xcodeproj
概念上不同(#1 是关于定义 目标 的项目,而 #2 是关于 独立地 任何目标的项目) , 它们总是指向相同的位置,因为您本质上总是在构建目标。
参考资料
Xcode 8.3 Build Settings reference
Xcode Build System Guide(2016 年 9 月 29 日退休)
$ (SRCROOT)
代表项目根目录。像这是一个相对路径,应该使用 SRCROOT
$ (PROJECT_DIR)
代表整个项目。应该用PROJECT_DIR到第一个test01,代表项目的最外层文件夹
在项目中添加文件时,如.a等,先showinfinder,复制到项目中,然后拖到xcode项目中
在Xcode中,我们要在Build Settings中配置很多路径,然后我们会处理$(SRCROOT) 和 $(PROJECT_DIR) ,但是它们之间有什么区别,你能给我举个例子吗,谢谢。
SRCROOT
& PROJECT_DIR
是相同的宏,具有相同的效果。PROJECT_DIR
在谈论框架时更有意义。
在实践中可交换,而文档在理论上做出了这些微妙的区别:
SRCROOT
Directory path. Identifies the directory containing the target’s source files: contains the path to the project file that defines the target.
SOURCE_ROOT
是SRCROOT
的未记录的别名
PROJECT_DIR
标识包含 project (.xcodeproj
)
的目录$(PROJECT_DIR)/build
用作创建默认值:- 中间构建文件路径
OBJROOT
- 构建产品路径
SYMROOT
Typically these paths are not set per target, but are set per-project or per-user.
- 中间构建文件路径
PROJECT_FILE_PATH
标识项目本身。
相当于$(PROJECT_DIR)/$(PROJECT_NAME).xcodeproj
概念上不同(#1 是关于定义 目标 的项目,而 #2 是关于 独立地 任何目标的项目) , 它们总是指向相同的位置,因为您本质上总是在构建目标。
参考资料
Xcode 8.3 Build Settings reference
Xcode Build System Guide(2016 年 9 月 29 日退休)
$ (SRCROOT)
代表项目根目录。像这是一个相对路径,应该使用 SRCROOT
$ (PROJECT_DIR)
代表整个项目。应该用PROJECT_DIR到第一个test01,代表项目的最外层文件夹
在项目中添加文件时,如.a等,先showinfinder,复制到项目中,然后拖到xcode项目中