SRCROOT和PROJECT_DIR有什么不同?
在Xcode中,我们必须在“ 构build设置”中configuration许多path,而不是处理$(SRCROOT)和$(PROJECT_DIR) ,但是它们之间有什么区别,能否给我一个例子,thx很多。
在实践中可以交换,而文档使这些微妙的理论区别:
-
SRCROOT
目录path。 标识包含目标源文件的目录:包含定义目标的项目文件的path。
SOURCE_ROOT
是SRCROOT
的未SOURCE_ROOT
的别名 -
PROJECT_DIR
标识包含项目的目录(.xcodeproj
)
$(PROJECT_DIR)/build
被用作创build默认值:- 中级构build文件path
OBJROOT
- 构build产品path
SYMROOT
通常,这些path不是针对每个目标设置的,而是针对每个项目或每个用户设置的。
- 中级构build文件path
-
PROJECT_FILE_PATH
标识项目本身。
相当于$(PROJECT_DIR)/$(PROJECT_NAME).xcodeproj
从概念上讲,不同的是(#1是关于定义目标的项目,而#2是关于独立于任何目标的项目),它们总是指向相同的位置,因为实质上,它总是build立一个目标。
参考
Xcode 8.3构build设置参考
Xcode构build系统指南 (2016-09-29已退休)
SRCROOT
和PROJECT_DIR
是相同的macros具有相同的效果。 PROJECT_DIR
在讨论框架时更有意义。