macos升级Catalina后golang错误

今天将旧的go项目全部迁移使用go mod管理。在go get的时候,出现下面的错误。

_cgo_export.c:3:10: fatal error: 'stdlib.h' file not found
# crypto/x509
/usr/local/go/src/crypto/x509/root_cgo_darwin.go:16:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
#include 
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果上面的问题出现在

可以使用下面的方式解决:

10.14 解决方法

在终端直接打开

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

10.14 重新安装header头文件SDK

我刚开始升级到10.14的时候,就是这样解决的。

现在升级到10.15了,现在 /Library/Developer/CommandLineTools/ 这个目录下面没有 Packages

10.15 解决方法

1.首先应该安装最新稳定版的 Xcode,或运行:

xcode-select --install

2.重启电脑,按住 Command+R 进入 恢复模式,在恢复模式中启动 terminal,输入:

csrutil disable

上面两步我是很早以前就做了

3.再次重启电脑,运行下面命令,把根目录挂载为可读写,不然,下面步骤,不能创建软连接

sudo mount -uw /

4.建立以下软连接

cd /System/Library/Frameworks/CoreFoundation.framework
ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers Headers
ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/Modules Modules
cd /System/Library/Frameworks/Security.framework
ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers Headers
ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Modules Modules

5.重新执行命令,成功了

欢迎关注我们的微信公众号,每天学习Go知识