由于 MACOSX_DEPLOYMENT_TARGET,Big Sur 发出“无效版本”错误

Fel*_*ria 38 python macos

我认为由于 Big Sur 正在为新操作系统发布新的修补程序尚未发生。尝试安装clang用于编译的模块时,会抛出以下错误:

clang: error: invalid version number in 'MACOSX_DEPLOYMENT_TARGET=11.0'
Run Code Online (Sandbox Code Playgroud)

目前正在运行:

  • Mac OS Big Sur,11.0 Beta
  • 英特尔CPU (i386)
  • Python 3.8.0 通过安装 pyenv

多个模块有clang依赖关系,所以这个错误似乎很常见。一个例子:

pip install multidict
Run Code Online (Sandbox Code Playgroud)

安装旧版本的命令行工具(例如 11.5)也不起作用。

Håk*_* T. 51

我想扩展@Felipe 的优秀答案;如果即使跑步也不起作用

>>> softwareupdate --all --install --force
Software Update Tool

Finding available software
No updates are available.
Run Code Online (Sandbox Code Playgroud)

...按照“自制医生”的智慧解决了它,即删除并重新安装:

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
Run Code Online (Sandbox Code Playgroud)

  • 答案的第二部分为我解决了这个问题。 (3认同)

Fel*_*ria 41

找出我的问题。

以前我XCode从 App Store (11.7)安装并将其 SDK 设置为我的默认值:

sudo xcode-select --switch /Applications/Xcode.app/
Run Code Online (Sandbox Code Playgroud)

但是,这似乎带有不受支持的版本clang

  ? clang --version
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Run Code Online (Sandbox Code Playgroud)

xcode-select通过以下方式设置为最新版本:

sudo xcode-select --switch /Library/Developer/CommandLineTools
Run Code Online (Sandbox Code Playgroud)

编辑 (11/15/2020)

尝试上述更改时,您可能会收到错误消息:

xcode-select: error: invalid developer directory '/Library/Developer/CommandLineTools'

要解决此问题,您必须从此处的Apple 官方网站安装最新的命令行工具。在编写此编辑时,我为 Xcode 12.3 beta安装了命令行工具

clang工作版本的更改:

  ? clang --version
Apple clang version 12.0.0 (clang-1200.0.32.2)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Run Code Online (Sandbox Code Playgroud)

内置的 Big Sur SDK 是 version 10.15,它似乎可以正常工作:

  ? ls /Library/Developer/CommandLineTools/SDKs
MacOSX.sdk      MacOSX10.15.sdk
Run Code Online (Sandbox Code Playgroud)

切换后,multidict安装成功。

  ? pip install multidict
Collecting multidict
  Downloading multidict-4.7.6-cp38-cp38-macosx_10_14_x86_64.whl (48 kB)
     |????????????????????????????????| 48 kB 589 kB/s
Installing collected packages: multidict
Successfully installed multidict-4.7.6
Run Code Online (Sandbox Code Playgroud)

进一步调查似乎表明这是 Apple 的设计选择(来源):

在此处输入图片说明

因此,确保您的 SDK 是默认开箱即用的,而不是 XCode 的新 SDK 应该足以让系统在需要时切换上下文(并且似乎与pip+一起工作正常clang)。


Mik*_*rev 18

就我而言,我必须删除/Library/Developer/CommandLineTools并重新安装命令行工具

% sudo rm -rf /Library/Developer/CommandLineTools
% sudo xcode-select --install
% clang --version
Apple clang version 12.0.0 (clang-1200.0.32.27)
Target: x86_64-apple-darwin20.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Run Code Online (Sandbox Code Playgroud)


use*_*745 14

我已经删除并重新安装了 xtools CLI,但错误仍然存​​在..

我需要做的就是

export SYSTEM_VERSION_COMPAT=1
Run Code Online (Sandbox Code Playgroud)

然后错误消失了

  • 我正在使用“pipenv install”,然后它在控制台中发出大量错误和警告,然后设置此后,它就像魅力一样工作,并且所有依赖项都顺利安装/解决。这救了我的命!谢谢 (2认同)

Özg*_*aşı 5

就我而言,删除 CLT 和 LLVM 并设置刚刚编译的 XCode。

% sudo rm -rf /Library/Developer/CommandLineTools
% sudo xcode-select --switch /Applications/Xcode.app
% brew uninstall llvm # if installed via brew
% clang --version
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: x86_64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Run Code Online (Sandbox Code Playgroud)

gcc 和 g++ 现在编译没有任何错误。