微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MacOS Catalina升级后,Go程序将无法运行

如何解决MacOS Catalina升级后,Go程序将无法运行

这可能是一个奇怪的问题,但是在MacOS Catalina升级后,某些用Go编写的程序将无法在我的MacBook Pro上运行。

尽管运行了基本的“ Hello World”程序,但是随后我使用net/http包编写程序,却遇到以下错误

注意:这些程序是正确的,它们在Docker容器中可以正常运行

输出 IntelliJ ):


# runtime/cgo
In file included from gcc_darwin_amd64.c:6:
/usr/local/include/pthread.h:331:6: error: macro expansion producing 'defined' has undefined behavior [-Werror,-Wexpansion-to-defined]
/usr/local/include/pthread.h:200:2: note: expanded from macro '_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT'
/usr/local/include/pthread.h:331:6: error: macro expansion producing 'defined' has undefined behavior [-Werror,-Wexpansion-to-defined]
/usr/local/include/pthread.h:200:34: note: expanded from macro '_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT'
/usr/local/include/pthread.h:540:6: error: macro expansion producing 'defined' has undefined behavior [-Werror,-Wexpansion-to-defined]
/usr/local/include/pthread.h:200:2: note: expanded from macro '_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT'
/usr/local/include/pthread.h:540:6: error: macro expansion producing 'defined' has undefined behavior [-Werror,-Wexpansion-to-defined]
/usr/local/include/pthread.h:200:34: note: expanded from macro '_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT'

我已经尝试过的事情:

  1. 重新安装go
  2. 重新安装xcode
  3. 检查GOPATHGOROOT的设置是否正确

使用过:

MacOS version - Catalina 10.15.6
Go version - go1.15.2 darwin/amd64

解决方法

在终端窗口中输入xcode-select -print-path并检查您的安装目录。在我的情况下,输出为:/Applications/Xcode.app/Contents/Developer

如果是相同情况,则在终端上使用以下命令可以解决问题:

sudo xcode-select --switch /Library/Developer/CommandLineTools

另一种选择是使用issue中提到的CGO_CPPFLAGS,但是它可以在会话中使用:

export CGO_CPPFLAGS="-Wno-error -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-builtin-requires-header"
,

遗憾的是,所有试用都没有奏效。

我已经使用 IntelliJ IDEA Ultimate 有一段时间了..所以我尝试使用 IDE 设置 Go SDK、GOROOT 和 GOPATH(我想到了一个想法)。

我在 MacBook 上卸载/删除了与 Go 相关的所有内容。

然后我在IntelliJ IDEA上安装了Go插件,果然提示Go SDK不可用,GOROOT和GOPATH都没有设置。

我按照说明进行操作,剩下的交给 IntelliJ IDEA!

它下载并安装了 Go SDK,让我选择 GOPATH,它索引了东西,现在一切都像魅力一样工作!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。