SRCROOT和PROJECT_DIR有什么不同?

chi*_*ure 46 xcode environment-variables ios

在Xcode中,我们必须在Build Settings中配置许多路径,然后我们将处理$(SRCROOT)$(PROJECT_DIR),但是它们之间有什么区别,你能给我一个例子吗,很多.

Swi*_*ect 43

在实践中可以交换,而文档则进行了这些微妙的理论区分:

  1. SRCROOT

    目录路径.标识包含目标源文件的目录:包含定义目标项目文件的路径.

    SOURCE_ROOT 是一个无证的别名 SRCROOT

  2. PROJECT_DIR
    标识包含项目的目录(.xcodeproj)
    $(PROJECT_DIR)/build用作创建默认值:

    • 中间构建文件路径 OBJROOT
    • 构建产品路径 SYMROOT

    通常,这些路径不是按目标设置的,而是按项目或按用户设置的.

  3. PROJECT_FILE_PATH
    标识项目本身.
    相当于$(PROJECT_DIR)/$(PROJECT_NAME).xcodeproj

概念上不同(#1是关于定义目标的项目,而#2是关于项目的,独立于任何目标),它们总是指向相同的位置,因为从本质上讲,你总是建立一个目标.

参考

Xcode 8.3构建设置参考
Xcode构建系统指南(已退休2016-09-29)


Bai*_*aig 11

SRCROOT&PROJECT_DIR是相同的宏具有相同的效果.PROJECT_DIR在谈论框架时更有意义.