首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YouCompleteMe,头文件

YouCompleteMe,头文件
EN

Stack Overflow用户
提问于 2014-06-27 03:03:50
回答 1查看 9.6K关注 0票数 7

我正在使用YouCompleteMe处理一些C++头文件。头文件并不包括查找它正在使用的所有类所需的所有其他头文件。在不修改头文件的情况下,我是否可以修改我的.ycm_extra_conf.py文件,让clang知道它需要的其他头文件?

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

C.cc

代码语言:javascript
复制
#include "A.h"
#include "B.h"

A.h

代码语言:javascript
复制
class A {};

B.h

代码语言:javascript
复制
class B : A {};

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

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

EN

回答 1

Stack Overflow用户

发布于 2014-06-27 06:16:07

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

代码语言:javascript
复制
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',
]
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24438211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档