107.02.09 解決 clang 找不到 iostream

環境:(其他環境應該也可以用類似解法只是路徑不同要自己找一下)
Cygwin
clang++ --version:5.0.1

主要是要寫 C++ 時,ale 報錯:
([clang] 'iostream' file not found [W])
感覺是 clang 的問題,就來解決啦
p.s. 圖片中的 10055_Hashmat_the_brave_warrior 就自動換成 test 囉



首先找不到 iostream 是因為 clang 沒搜尋到存放的資料夾
(fatal error: 'iostream' file not found)

可以使用加上 -v 查看搜尋路徑
$ clang++ -c test.cpp -v

不過查看其實沒啥用,還是會顯示沒找到 iostream
所以要直接加入路徑,我是直接使用 gcc 的路徑
$ clang++ -c test.cpp -isystem /lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++

但是會顯示另一個錯誤,就是找不到 bits/c++config.h
(fatal error: 'bits/c++config.h' file not found)

然後我就發現 x86_64-pc-cygwin 資料夾,裡面的 bits 內有 c++config.h !!!!

所以就把它移到外面的 bits 裡囉
到 "cygwin安裝路徑"\cygwin\lib\gcc\x86_64-pc-cygwin\6.4.0\include\c++
找到 x86_64-pc-cygwin 資料夾
把裡面的 bits 資料夾內部所有檔案複製後貼到與 x86_64-pc-cygwin 同層的 bits 資料夾內
同理把所有 x86_64-pc-cygwin 資料夾內的子資料夾都這樣做


然後剛剛的指令就沒有錯誤了
$ clang++ -c test.cpp -isystem /lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++

接著就設定 vim 囉
打開設定檔 e.g. .vimrc
加入:
let g:ale_cpp_clang_options = '-std=c++14 -Wall -nostdinc++ -isystem /lib/gcc/x86_64-pc-cygwin/6.4.0/include/c++'
解決 OuO



參考資料:
Need to change include path for clang
What are the GCC default include directories?

沒有留言:

張貼留言

^ Top