我认为由于 Big Sur 正在为新操作系统发布新的修补程序尚未发生。尝试安装clang
用于编译的模块时,会抛出以下错误:
clang: error: invalid version number in 'MACOSX_DEPLOYMENT_TARGET=11.0'
Run Code Online (Sandbox Code Playgroud)
目前正在运行:
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)
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)
然后错误消失了
就我而言,删除 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++ 现在编译没有任何错误。
归档时间: |
|
查看次数: |
19080 次 |
最近记录: |