剽竊: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目錄下卻發(fā)現(xiàn)了已經(jīng)安裝好的相應(yīng)文件。
注意:如果沒有該目錄或相關(guān)文件,可以使用 xcode-select --install命令安裝
這里又要用到軟鏈接了,其實go使用cgo編譯時,會到如下兩個目錄搜索相關(guān)文件:
/System/Library/Frameworks/CoreFoundation.framework
/System/Library/Frameworks/Security.framework
所以只要通過軟鏈接,將相關(guān)的目錄和文件鏈接到這兩個目錄即可,于是有了如下的解決方案:
在終端進入/System/Library/Frameworks/CoreFoundation.framework目錄,然后執(zhí)行下面兩條命令:
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目錄,然后執(zhí)行下面兩條命令:
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
完成以上步驟后,新系統(tǒng)就一切恢復(fù)如常了,真是虛驚一場。最后建議:用戶的數(shù)據(jù)最好還是放在數(shù)據(jù)卷中,如果非要通過系統(tǒng)卷的根(/)訪問,可以在根目錄創(chuàng)建軟鏈接,但不要忘了打開SIP哦!