gpt4 book ai didi

xcode - DEVELOPER_DIR 是否需要在环境中保持设置状态?

转载 作者:行者123 更新时间:2023-12-02 13:46:04 25 4
gpt4 key购买 nike

我想要并行安装 XCode,并使用 DEVELOPER_DIR环境变量在它们之间进行选择。这样做的目标是使用 xcrun -f --sdk macosx clang 的结果。确定适当的 C 编译器,然后在脚本或构建系统中使用它。

CC=$(DEVELOPER_DIR=<something> xcrun -f --sdk macosx clang)

我的问题是 DEVELOPER_DIR 是否使用xcrun找到的工具时需要保持设置,或者是否可以在 xcrun 执行过程中设置它? ,同上,然后在默认环境下使用返回的工具,不带 DEVELOPER_DIR仍然设置。

换句话说,虽然 xcrun显然确实取决于 DEVELOPER_DIR 的值,工具本身也依赖于它吗?之间是否有有意义的区别:

  • DEVELOPER_DIR=<whatever> command CC=$(xcrun -f --sdk macosx clang)
  • command CC=$(DEVELOPER_DIR=<whatever> xcrun -f --sdk macosx clang)

第二个正确吗?还是只有第一个?

最佳答案

I'd like to have side-by-side installations of XCode, and use the DEVELOPER_DIR environment variable to select between them.

安装两个或更多版本的 Xcode 没问题。在它们之间进行选择的通常方法是使用 xcode-select命令,但该命令的手册页似乎确实表明您可以通过设置 DEVELOPER_DIR 来仅对当前 session 完成相同的操作环境变量自己设置。以下是 --switch 的文档内容选项说:

Sets the active developer directory to the given path, for example /Applications/Xcode-DP.app. This command must be run with superuser permissions (see sudo(8)), and will affect all users on the system. To set the path with-out superuser permissions or only for the current shell session, use the DEVELOPER_DIR environment variable instead (see ENVIRONMENT).

但是,您还应该注意环境部分中给出的建议:

Note that for historical reason, the developer directory is considered to be the Developer content directory inside the Xcode application (for example /Applications/Xcode.app/Contents/Developer). You can set the environment variable to either the actual Developer contents directory, or the Xcode application directory -- the code-select provided shims will automatically convert the environment variable into the full Developer content path.

所以<whatever>在你的问题中应该指定 Developer 的完整路径目录,而不仅仅是 Xcode 应用程序。

In other words, while xcrun clearly does depend on the value of DEVELOPER_DIR, do the tools themselves depend on it too? Is there a meaningful difference between:

DEVELOPER_DIR=<whatever> command CC=$(xcrun -f --sdk macosx clang)

使用xcrun找到这些工具,以便您可以自己调用它们,并担心何时设置和取消设置 DEVELOPER_DIR似乎过于复杂。根据xcode-select文档,所有“垫片”均遵循DEVELOPER_DIR环境。这里的“Shims”指的是/usr/bin中的Xcode命令。 。只要正确设置该环境变量,您就可以调用“/usr/bin/clang”而不是任何 xcrun发现,并且 /usr/bin/clang将调用clang版本在DEVELOPER_DIR 。想必,您问这个问题是因为您正在编写某种构建脚本,因此设置 DEVELOPER_DIR 应该没有问题在该脚本的早期,然后仅使用 /usr/bin命令。

command CC=$(DEVELOPER_DIR=<whatever> xcrun -f --sdk macosx clang)

程序从其父进程继承环境。在这里您可以找到 clang 的正确副本使用,但您将在 DEVELOPER_DIR 的环境中调用它未设置。这是否重要取决于您使用的工具是否调用任何其他工具。老实说,我不知道这些工具是否会调用其他工具,但像 xcodebuild 这样的工具似乎是合乎逻辑的。将调用其中许多工具,因此依赖 DEVELOPER_DIR设置正确。

简而言之,设置 DEVELOPER_DIR 没有任何缺点。根据构建脚本的需要,并尝试仅在调用 xcrun 时指定它一般来说,似乎不如替代方法可靠。

关于xcode - DEVELOPER_DIR 是否需要在环境中保持设置状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42862112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com