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.c
qui contiennent de la tête fichiers: driver.h
driver_ddi.h
debug.h
common.h
un 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.h
d'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
Vous devez vous connecter pour publier un commentaire.
Déplacé ici de la question.
J'ai trouvé le problème:
J'ai raté une virgule et le chemin d'accès doit être
./xxx
aussi neeeeed'-I/usr/include'
et'-I/usr/local/include'
.