xcode升級到10.1后stdio.h找不到的解決方案

最近把macos升級到mojave,順便把xcode也升到了10.1枫振。結(jié)果編譯C代碼的時候持寄,發(fā)現(xiàn)找不到stdio.h了:

<stdin>:1:19: 致命錯誤:stdio.h:No such file or directory

頭文件包含路徑有問題嗎谬泌?于是用gcc搜索stdio.h(gcc幾個編譯選項的解釋見最下面的附錄):

$ echo "#include <stdio.h>" | gcc -v -x c -
使用內(nèi)建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-6.2.0/libexec/gcc/x86_64-apple-darwin16.1.0/6.2.0/lto-wrapper
目標(biāo):x86_64-apple-darwin16.1.0
配置為:../configure --prefix=/usr/local/gcc-6.2.0 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3 --disable-multilib --with-sytem-zlib --enable-languages=c,c++
線程模型:posix
gcc 版本 6.2.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-mmacosx-version-min=10.14.0' '-mtune=core2'
 /usr/local/gcc-6.2.0/libexec/gcc/x86_64-apple-darwin16.1.0/6.2.0/cc1 -quiet -v -D__DYNAMIC__ - -fPIC -quiet -dumpbase - -mmacosx-version-min=10.14.0 -mtune=core2 -auxbase - -version -o /var/folders/23/cb_mbvwd6hg6sj5543x3dj_h0000gn/T//ccsU3P4Z.s
GNU C11 (GCC) 版本 6.2.0 (x86_64-apple-darwin16.1.0)
    由 GNU C 版本 6.2.0 編譯乙墙,GMP 版本 6.1.0颖变,MPFR 版本 3.1.4,MPC 版本 1.0.3听想,isl 版本 none
GGC 準(zhǔn)則:--param ggc-min-expand=100 --param ggc-min-heapsize=131072
忽略不存在的目錄“/usr/local/gcc-6.2.0/lib/gcc/x86_64-apple-darwin16.1.0/6.2.0/../../../../x86_64-apple-darwin16.1.0/include”
忽略不存在的目錄“/usr/include”
#include "..." 搜索從這里開始:
#include <...> 搜索從這里開始:
 /usr/local/gcc-6.2.0/lib/gcc/x86_64-apple-darwin16.1.0/6.2.0/include
 /usr/local/include
 /usr/local/gcc-6.2.0/include
 /usr/local/gcc-6.2.0/lib/gcc/x86_64-apple-darwin16.1.0/6.2.0/include-fixed
 /System/Library/Frameworks
 /Library/Frameworks
搜索列表結(jié)束腥刹。
GNU C11 (GCC) 版本 6.2.0 (x86_64-apple-darwin16.1.0)
    由 GNU C 版本 6.2.0 編譯,GMP 版本 6.1.0汉买,MPFR 版本 3.1.4衔峰,MPC 版本 1.0.3,isl 版本 none
GGC 準(zhǔn)則:--param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 012c530f028eade4bd44e1c5c6ad79c2
<stdin>:1:19: 致命錯誤:stdio.h:No such file or directory
編譯中斷蛙粘。

結(jié)果竟然告訴我垫卤,/usr/include目錄不存在!
stackoverflow上查了下出牧,原來是xcode挖的坑:

The Command Line Tools package installs the macOS system headers inside the macOS SDK. Software that compiles with the installed tools will search for headers within the macOS SDK provided by either Xcode at:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
or the Command Line Tools at:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
depending on which is selected using xcode-select.
The command line tools will search the SDK for system headers by default. However, some software may fail to build correctly against the SDK and require macOS headers to be installed in the base system under /usr/include. If you are the maintainer of such software, we encourage you to update your project to work with the SDK or file a bug report for issues that are preventing you from doing so. As a workaround, an extra package is provided which will install the headers to the base system. In a future release, this package will no longer be provided. You can find this package at:
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
To make sure that you're using the intended version of the command line tools, run xcode-select -s <path to Xcode> or xcode select -s /Library/Developer/CommandLineTools after installing.

解決方案有兩個,更簡單的是安裝macOS_SDK_headers_for_macOS_10.14.pkg评抚,不過xcode若干個版本后就不再支持了慨代。
安裝方法如下

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

然后會彈出一個安裝界面侍匙,一直點繼續(xù)想暗,最后/usr/include總算恢復(fù)正常了债鸡。

附錄

gcc的編譯選項

  • '-v': 打印gcc版本信息和編譯過程的詳細(xì)信息
  • '-x c': 指定以C語言來編譯
  • '-': 指定以標(biāo)準(zhǔn)輸入stdin作為輸入,而不是文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厌均,一起剝皮案震驚了整個濱河市棺弊,隨后出現(xiàn)的幾起案子模她,更是在濱河造成了極大的恐慌侈净,老刑警劉巖畜侦,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旋膳,死亡現(xiàn)場離奇詭異澎语,居然都是意外死亡擅羞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門草慧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匙头,“玉大人,你說我怎么就攤上這事舔示◎眩” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵淌铐,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任喝噪,我火速辦了婚禮,結(jié)果婚禮上指么,老公的妹妹穿的比我還像新娘酝惧。我一直安慰自己,他們只是感情好伯诬,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布晚唇。 她就那樣靜靜地躺著,像睡著了一般盗似。 火紅的嫁衣襯著肌膚如雪哩陕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天赫舒,我揣著相機(jī)與錄音悍及,去河邊找鬼。 笑死接癌,一個胖子當(dāng)著我的面吹牛心赶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缺猛,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼缨叫,長吁一口氣:“原來是場噩夢啊……” “哼椭符!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起弯汰,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤艰山,失蹤者是張志新(化名)和其女友劉穎湖雹,沒想到半個月后咏闪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡摔吏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年鸽嫂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片征讲。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡据某,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诗箍,到底是詐尸還是另有隱情癣籽,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布滤祖,位于F島的核電站筷狼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏匠童。R本人自食惡果不足惜埂材,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汤求。 院中可真熱鬧俏险,春花似錦、人聲如沸扬绪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挤牛。三九已至莹痢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赊颠,已是汗流浹背格二。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留竣蹦,地道東北人顶猜。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像痘括,于是被迫代替她去往敵國和親长窄。 傳聞我的和親對象是個殘疾皇子滔吠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容