你让我完整在我将 Ubuntu 从 16 升级到 18 之前,它运行良好。
现在它不using std::cin;
明白
命名空间“std”中没有名为“cin”的成员;您的意思是“min”吗?
它也不会读取我自己的头文件中定义的类名。
我已尝试重新安装git pull
最新版本的YouCompleteMe git submodule update
。
我还验证/更新了 .vimrc 中 libclang 的路径以及.vim/.ycm_extra_conf.py 中/usr/lib/llvm-8/lib/libclang.so
C++ 标准库的路径/usr/include/c++/7/
所有 C++ 源代码都可以使用几乎相同的编译标志进行编译,且不会出现错误。
答案1
按照 README 说明操作后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,问题已解决。