YouCompleteMe,头文件

时间:2014-06-26 19:03:50

标签: c++ vim

我正在使用YouCompleteMe处理一些C ++头文件。头文件不包含它所需的所有其他头文件,以便查找它正在使用的所有类。如果不修改头文件,我可以修改我的.ycm_extra_conf.py文件,让clang知道它需要的额外头文件吗?

例如,假设我有三个文件" A.h"," B.h"和" C.cc"。

C.cc

#include "A.h"
#include "B.h"

A.H

class A {};

B.h

class B : A {};

B包含文件无法在其上编译,但C.cc将正确编译,因为它包含正确顺序的内容。但是,如果我打开它自己的B.h,它会抱怨A没有被定义。

我知道C.cc编译正确,那么在打开B.h时如何告诉YCM在它用于C.cc的相同上下文中编译它?标志似乎不足以告诉YCM如何编译文件,因为它需要用C.cc编译。

1 个答案:

答案 0 :(得分:7)

.ycm_extra_conf.py中添加常规预处理程序标志,例如:

flags = [
'-Wall',
'-Wextra',
'-Wno-variadic-macros',
'-fexceptions',
'-DNDEBUG',
'-DUNIT_TESTS',
'-std=c++11',
'-x', 'c++',
'-isystem', '/home/sehe/custom/boost',
'-isystem', '/usr/lib/gcc/x86_64-linux-gnu/4.8/include',
'-I', 'src',
'-I', 'include',
'-isystem', '/usr/include',
'-isystem', '/usr/local/include',
]