1

我正在尝试设置 YCM 以利用 C 中的自动完成功能。我按照手册中描述的说明进行操作。(:help YouCompleteMe) 但是它没有为我显示任何自动完成列表。我的 ycm_extra_conf.py 和调试信息中的部分标志如下所示。(ps,当我打开C文件并输入pri时,我也会发布我的当前状态(它应该建议printf或等等......)

谢谢 :)

我目前的状态

YCM 调试信息

  '-std=c11',
  '-x',
  'c'
  '-isystem',
  '../BoostParts',
  '-isystem',
  '/System/Library/Frameworks/Python.framework/Headers',
  '-isystem',
  '../llvm/include',
  '-isystem',
  '../llvm/tools/clang/include',
  '-I',
  '.',
  '-I',
  './ClangCompleter',
  '-isystem',
  './tests/gmock/gtest',
  '-isystem',
  './tests/gmock/gtest/include',
  '-isystem',
  './tests/gmock',
  '-isystem',
  './tests/gmock/include',
  #C default header
  '-isystem',
  '/usr/lib/gcc/x86_64-linux-gnu',
  '-isystem',
  '/usr/lib/gcc/x86_64-linux-gnu/5/include',
  '-isystem',
  '/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed',
  '-isystem',
  '/usr/local/include',
  '-isystem',
  '/usr/include',
4

1 回答 1

2

看开头:

'-std=c11',
'-x',
'c'
'-isystem',

最后两项变为c-isystem(见:YcmDebug输出)。它可能会混淆编译器。我猜你的意思是-c相反。然而,这样的标志是多余的YouCompleteMe,可以安全地省略。

PS C++ 头文件也会混淆 C 编译器,因此您需要确保提供的头文件与当前源文件类型(是 C 还是 C++)一致。

于 2016-11-10T11:38:02.877 回答