如何解决Apple M1 Pro安装GOPLS时的CoreFoundation框架缺失错误
问题描述
- 设备:Apple M1 Pro
- 系统版本:macOS 12.0.1 (21A559)
- Go版本:go1.19.3 darwin/arm64
执行安装命令:
go install -v golang.org/x/tools/gopls@latest
触发错误:
golang.org/x/tools/gopls
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: framework not found CoreFoundation
clang: error: linker command failed with exit code 1 (use -v to see invocation)
命令执行详细输出:
{ "killed": false, "code": 2, "signal": null, "cmd": "/usr/local/go/bin/go install -v golang.org/x/tools/gopls@latest", "stdout": "", "stderr": "go: downloading golang.org/x/tools v0.3.0\ngo: downloading golang.org/x/tools/gopls v0.10.1\ngo: downloading golang.org/x/tools v0.2.1-0.20221101170700-b5bc717366b2\ngo: downloading github.com/sergi/go-diff v1.1.0\ngo: downloading honnef.co/go/tools v0.3.3\ngo: downloading mvdan.cc/gofumpt v0.3.1\ngo: downloading mvdan.cc/xurls/v2 v2.4.0\ngo: downloading golang.org/x/sys v0.1.0\ngo: downloading golang.org/x/mod v0.6.0\ngo: downloading golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4\ngo: downloading golang.org/x/vuln v0.0.0-20221010193109-563322be2ea9\ngo: downloading golang.org/x/text v0.4.0\ngo: downloading golang.org/x/exp/typeparams v0.0.0-20220722155223-a9213eeb770e\ngo: downloading golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e\ngo: downloading github.com/BurntSushi/toml v1.2.0\ngo: downloading github.com/google/go-cmp v0.5.8\n# golang.org/x/tools/gopls\n/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1\nld: framework not found CoreFoundation\nclang: error: linker command failed with exit code 1 (use -v to see invocation)\n\n" }
解决方案
错误原因是Clang无法定位系统框架CoreFoundation,多由Xcode Command Line Tools未正确安装或路径配置异常导致,可按以下步骤解决:
重装Xcode Command Line Tools
先移除现有工具:sudo rm -rf /Library/Developer/CommandLineTools重新触发安装:
xcode-select --install安装完成后验证路径:
xcode-select -p正常输出应为
/Library/Developer/CommandLineTools手动指定框架路径
若重装无效,临时设置环境变量指定系统框架目录:export CGO_LDFLAGS="-F/System/Library/Frameworks"再次执行安装命令:
go install -v golang.org/x/tools/gopls@latest确认Go架构匹配
检查Go是否为arm64架构:go env GOARCH输出应为
arm64,若不符需重新下载对应架构的Go安装包。
内容的提问来源于stack exchange,提问作者karanraj singh saini
相关产品推荐
相关产品推荐

