为了尝试将包含路径添加到Syntastic(3.6.0-106; Vim 7.3),为了阻止它在第一个包含它发现致命错误而无法找到,我尝试创建一个{{ 1}}文件。关于它应该如何工作的信息不多,但是有参考文献,我跟着他们的例子:
-I/path/to/include
-I/you/get/the/idea
-L/some/library
-lfoo
-lbar
-DHAVE_SOME_FLAG
-pedantic
-Wall
-std=c99
也就是说,每行一个编译器参数。
除非我强制使用:SynasticCheck
,否则这几乎可以删除所有错误检查 - 此时,它似乎更好地处理小位,但不完全正确我怎么期待。但是,无论哪种方式,如果我:echo g:syntastic_c_config_file
(或我期望设置的任何其他选项),Vim只会给我一个未定义的变量警告。
我显然做了一些根本错误的事情,但我不确定是什么!
答案 0 :(得分:2)
这是一篇旧文章,但我在这里偶然发现了相同问题的答案。看起来Syntastic发生了很大变化。 OP上面列出的文档不再有效。当前(截至2020年7月18日)文档位于:https://github.com/vim-syntastic/syntastic/blob/master/doc/syntastic-checkers.txt
要向“ gcc”检查器添加包含路径,您需要创建一个包含包含目录的文件,每行一个,后跟“ -I”。例如,在 /home/user/.syntastic_c_config_file 中添加:
-I/usr/include/glib-2.0/include
-I/usr/include/boost
然后在您的{vimrc}文件(通常是〜/ .vimrc)中,添加一行:
let g:syntastic_c_config_file='/home/user/.syntastic_c_config_file'
Syntastic现在变得越来越强大,并且在上面链接的文档中包含许多选项。
答案 1 :(得分:1)
事实证明,Syntastic将在不明确设置相应变量的情况下获取配置文件。此外,配置文件的内容不会传递到任何syntastic_c_*
变量,但仍会传递给gcc
的调用。 Syntastic也足够聪明地回溯以查找配置文件(例如,它会在找到它之前上升,因此您可以将.syntastic_c_config
保留在项目根目录中。
至于它失败的原因,调试日志显示我的编译器忽略了库标志(-L/some/path
和-lfoo
),这阻止了任何进一步语法检查的Syntastic。从我的配置文件中删除这些行解决了这个问题。