美文网首页
mac os 10.15.7: xxxx.h not found

mac os 10.15.7: xxxx.h not found

作者: jacky_8897 | 来源:发表于2021-04-30 18:07 被阅读0次

剽窃: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哦!

相关文章

网友评论

      本文标题:mac os 10.15.7: xxxx.h not found

      本文链接:https://www.haomeiwen.com/subject/bxforltx.html