What the different between SRCROOT and PROJECT_DIR?

后端 未结 2 1801
滥情空心
滥情空心 2021-01-31 01:43

In Xcode, we have to configure many paths in the Build Settings, then we will deal with the $(SRCROOT) and $(PROJECT_DIR) , Bu

相关标签:
2条回答
  • 2021-01-31 01:58

    Exchangeable in practice, while the documentation makes these subtle theoretical distinctions:

    1. 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 is an undocumented alias to SRCROOT

    2. PROJECT_DIR
      Identifies the directory containing the project (.xcodeproj)
      $(PROJECT_DIR)/build is used as the create the default value for:

      • Intermediate Build Files Path OBJROOT
      • Build Products Path SYMROOT

      Typically these paths are not set per target, but are set per-project or per-user.

    3. PROJECT_FILE_PATH
      Identifies the project itself.
      Equivalent to $(PROJECT_DIR)/$(PROJECT_NAME).xcodeproj

    Conceptually different (#1 is about the project which defines the target while #2 is about the project independently of any target), they are always pointing to the same location since you are, in essence, always building a target.

    References

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

    0 讨论(0)
  • 2021-01-31 02:20

    SRCROOT & PROJECT_DIR are same macros have same effect.PROJECT_DIR makes more sense when talking about frameworks.

    0 讨论(0)
提交回复
热议问题