我正在使用YouCompleteMe处理一些C++头文件.头文件不包含它所需的所有其他头文件,以便查找它正在使用的所有类.如果不修改头文件,我可以修改我的.ycm_extra_conf.py文件,让clang知道它需要的额外头文件吗?
举个例子,假设我有三个文件"啊","Bh"和"C.cc".
C.cc
#include "A.h"
#include "B.h"
Run Code Online (Sandbox Code Playgroud)
啊
class A {};
Run Code Online (Sandbox Code Playgroud)
BH
class B : A {};
Run Code Online (Sandbox Code Playgroud)
B包含文件不能自己编译,但C.cc将正确编译,因为它包含正确顺序的东西.但是,如果我自己打开Bh,它会抱怨A没有被定义.
我知道C.cc编译正确,那么在打开Bh时如何告诉YCM在它用于C.cc的相同上下文中编译它?标志似乎不足以告诉YCM如何编译文件,因为它需要用C.cc编译.
在您.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',
]
Run Code Online (Sandbox Code Playgroud)