你使我完整工作正常,直到我將 Ubuntu 從 16 升級到 18。
現在不明白using std::cin;
說
名稱空間「std」中沒有名為「cin」的成員;您指的是 'min' 嗎?
它也不會讀取我自己的頭檔中定義的類別名稱。
我嘗試重新安裝 YouCompleteMe(git pull
最新版本)git submodule update
。
我還驗證/更新了 .vimrc 中的 libclang 路徑和.vim/.ycm_extra_conf.py 中的/usr/lib/llvm-8/lib/libclang.so
C++ 標準庫路徑/usr/include/c++/7/
所有 C++ 原始碼都可以透過幾乎相同的編譯標誌進行編譯,不會出現錯誤。
答案1
遵循自述文件後YouCompleteMe github 頁面並運行
$ echo | clang -v -E -x c++ -
clang version 8.0.0-3~ubuntu18.04.1 (tags/RELEASE_800/final)
...
#include "..." search starts here:
#include <...> search starts here:
/usr/bin/../lib/gcc/i686-linux-gnu/7.4.0/../../../../include/c++/7.4.0
/usr/bin/../lib/gcc/i686-linux-gnu/7.4.0/../../../../include/i386-linux-gnu/c++/7.4.0
/usr/bin/../lib/gcc/i686-linux-gnu/7.4.0/../../../../include/c++/7.4.0/backward
/usr/include/clang/8.0.0/include
/usr/local/include
/usr/include/i386-linux-gnu
/usr/include
End of search list.
...
進入 ~/.vim/.ycm_extra_conf.py 並#include <...> search starts here:
在標誌數組中添加路徑,並在每個路徑之前添加 '-isystem' 並刪除舊的包含。
flags = [
# ...
'-isystem',
'/usr/bin/../lib/gcc/i686-linux-gnu/7.4.0/../../../../include/c++/7.4.0',
'-isystem',
'/usr/bin/../lib/gcc/i686-linux-gnu/7.4.0/../../../../include/i386-linux-gnu/c++/7.4.0',
'-isystem',
'/usr/bin/../lib/gcc/i686-linux-gnu/7.4.0/../../../../include/c++/7.4.0/backward',
# ...
]
重啟vim,問題就解決了。