我正在处理一个C++项目,并试图将其配置为使用语法。在我的项目中,我有一个头文件的嵌套目录结构(实际的嵌套结构更糟糕,这就是一个例子)。
--libs
|---dir1
|---foo1.h
|---dir2
|---foo2.h
|---foo3.h
|---dir3
|---foo4.h我使用以下方法将库文件包括在我的.vimrc文件中:
设g:syntastic_cpp_include_dirs = 'libs/‘
我以为这会递归地接收所有的头文件,但它没有。在代码中,syntastic会抱怨错误“没有找到这样的文件或目录”。
当我显式地将变量更改为引用特定目录时:
设g:syntastic_cpp_include_dirs =‘libs/dir3 2/dir3 3/’
它工作了。
我的问题:
编辑:
我没有提到在我的.vimrc中,有以下选项可用于语法:
let g:syntastic_check_on_open=1
let g:syntastic_enable_signs=1
let g:syntastic_cpp_include_dirs = ['libs/dir2/dir3', 'libs/dir2 ]
let g:syntastic_cpp_check_header = 1
let g:syntastic_cpp_remove_include_errors = 1发布于 2013-10-02 18:14:48
您可以在.syntastic_cpp_config文件中的项目根目录中包含要搜索的每个项目的所有目录。这样做的格式与向编译器提供-I指令相同。
就你的情况而言,这意味着:
sources下创建一个文件sources(假设您的代码所在,并且sources在目录层次结构中与libs处于相同的深度级别)。-Ilibs/dir1
-Ilibs/dir2
-Ilibs/dir2/dir3.vimrc中拥有所有的包含目录。您可以有一个不同的文件来保存由.vimrc全局变量g:syntastic_cpp_config_file指定的每个项目的自定义配置,例如
let g:syntastic_cpp_config_file = '.my_custom_include_file_for_syntastic'Syntastic将检查每个源目录和向上,直到它找到这个文件,然后使用它来生成它的输出。
发布于 2013-05-30 03:08:27
我也遇到过同样的问题,但运气不佳。但是,我发现如果我使用引号样式标头包含,语法将适当地检查文件夹,而不是发出警告。例如,如果您正在使用foo2.cpp,
#include "dir3/foo4.h"
#include "../dir1/foo1.h"保存括号包括标准库和任何您觉得像硬编码到vim中的库。
https://stackoverflow.com/questions/16622992
复制相似问题