SRCROOT和PROJECT_DIR有什么不同?

时间:2016-03-31 02:20:23

标签: ios environment-variables

在Xcode中,我们必须在构建设置中配置多个路径,然后我们将处理 $(SRCROOT) $(PROJECT_DIR)< / strong>,但他们之间有什么区别,你能给我一个例子吗,很多。

2 个答案:

答案 0 :(得分:34)

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

  1. SRCROOT

      

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

    SOURCE_ROOTSRCROOT

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

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

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

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

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

    <强>参考

    Xcode 8.3 Build Settings reference
    Xcode Build System Guide(2016-09-29退休)

答案 1 :(得分:9)

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