剽窃:https://www.cnblogs.com/nokiaguy/p/12764331.html
_cgo_export.c:3:10: fatal error: 'stdlib.h' file not found
这个错误我以前遇到过,是由于/usr/local目录中没有stdlib.h文件导致的,在上一个macOS版本中,可以在磁盘上搜索macOS_SDK_headers_for_macOS_10.14.pkg文件,然后安装即可。不过在Catalina中,并没有macOS_SDK_headers_for_macOS_10.14.pkg文件,当然macOS_SDK_headers_for_macOS_10.15.pkg也没有。不过在/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk目录下却发现了已经安装好的相应文件。
注意:如果没有该目录或相关文件,可以使用 xcode-select --install命令安装
这里又要用到软链接了,其实go使用cgo编译时,会到如下两个目录搜索相关文件:
/System/Library/Frameworks/CoreFoundation.framework
/System/Library/Frameworks/Security.framework
所以只要通过软链接,将相关的目录和文件链接到这两个目录即可,于是有了如下的解决方案:
在终端进入/System/Library/Frameworks/CoreFoundation.framework目录,然后执行下面两条命令:
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers Headers
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Modules Modules
再进入/System/Library/Frameworks/Security.framework目录,然后执行下面两条命令:
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework/Headers Headers
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework/Modules Modules
完成以上步骤后,新系统就一切恢复如常了,真是虚惊一场。最后建议:用户的数据最好还是放在数据卷中,如果非要通过系统卷的根(/)访问,可以在根目录创建软链接,但不要忘了打开SIP哦!
网友评论