语法 C 配置文件

Syntastic C configuration file

试图将包含路径添加到 Syntastic(3.6.0-106;Vim 7.3),以阻止它在第一个包含它找不到时给出致命错误,我试过了创建一个 .syntastic_c_config 文件。没有太多关于它应该如何工作的信息,但那里有参考资料,我按照他们的例子:

-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 只会给我一个未定义的变量警告。

我显然做错了根本性的错误,但我不确定是什么!

事实证明,Syntastic 将在不显式设置相应变量的情况下获取配置文件。此外,配置文件的内容不会传递到任何 syntastic_c_* 变量中,但仍会传递到对 gcc 的调用中。 Syntastic 也很聪明,可以回溯查找配置文件(例如,它会向上层级直到找到它,因此您可以将 .syntastic_c_config 保留在项目根目录中)。

至于失败的原因,调试日志显示我的编译器忽略了库标志(-L/some/path-lfoo),这阻止了 Syntastic 进行任何进一步的语法检查。从我的配置文件中删除这些行解决了问题。

这是一个旧的 post,但我偶然发现这里是为了寻找同一问题的答案。看起来 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 现在变得更加强大,并且在上面的链接文档中包含许多选项。