Comment configurer .ycm_extra_conf.py pour le projet en cours include PATH

J'ai installé YCM et syntastic pour VIM, normalement, ils fonctionnent très bien, mais j'ai un problème quand il détecte des erreurs dans mon code, il montre que, peut PAS trouver un chef de fichiers(ce qui est mon projet tête de fichier).

Mon répertoire de l'arborescence montre ci-dessous:

TOP
├── debug
   ├── debug.c
   ├── debug.h
   ├── debug.mk
   └── instrument.c
├── driver
   ├── driver.c
   ├── driver_ddi.c
   ├── driver_ddi.h
   ├── driver.h
   └── driver.mk
├── include
   └── common.h
├── libs
├── Makefile
├── mw
   ├── manager.c
   └── mw.mk
└── root
    ├── main.c
    └── root.mk

J'ai copié un .ycm_extra_conf.py vers le HAUT, en attendant, je vais généré tag et cscope fichier à HAUT ainsi, donc à chaque fois que j'ouvre le fichier sur le DESSUS, comme:

howchen@host:~/Work/c/sample/src
-> gvim ./driver/driver.c

à assurez-vous que chaque fois que je peux ajouter tag et cscope fichier dans VIM. Le problème est que si j'ouvre driver.cqui contiennent de la tête fichiers: driver.hdriver_ddi.hdebug.hcommon.hun code comme ci-dessous:

#include <stdio.h>
#include <stdlib.h>
#include "math.h"
#include "common.h"
#include "debug.h"
#include "driver_ddi.h"
#include "driver.h"

la syntastic ou YCM toujours montrer qu'il NE peut trouver common.h et debug.hd'autres la tête fichiers sont OK.

Mon YCM et syntastic config partie dans les fichiers vimrc:

" YCM
"   let g:ycm_extra_conf_globlist = ['~/.vim/bundle/YouCompleteMe/cpp/ycm/*','!~/*']
    let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py'

" Syntastic
    let g:syntastic_c_checkers=['make']
    let g:syntastic_always_populate_loc_list = 1
    let g:syntastic_check_on_open=1
    let g:syntastic_enable_signs=1
    let g:syntastic_error_symbol = '✗'
    let g:syntastic_warning_symbol = '⚠'
    set statusline+=%#warningmsg#
    set statusline+=%{SyntasticStatuslineFlag()}
    set statusline+=%*gbar

Mon .ycm_extra_conf.py écrire flags variable:

flags = [
'-Wall',
'-Wextra',
'-Werror',
'-Wc++98-compat',
'-Wno-long-long',
'-Wno-variadic-macros',
'-fexceptions',
'-DNDEBUG',
'-std=c99',
# ...and the same thing goes for the magic -x option which specifies the
# language that the files to be compiled are written in. This is mostly
# relevant for c++ headers.
# For a C project, you would set this to 'c' instead of 'c++'.
'-x', #I don't know if I need remove -x
'c',
'-isystem',
'../llvm/include',
'-isystem',
'../llvm/tools/clang/include',
'-I',
'.',
'-I',
'../driver'
'-I',
'../debug'
'-I',
'../include'
'-I',
'../include'
]

tout mauvais indicateurs-je régler?

source d'informationauteur How Chen