使用ccls和lsp的时候,flycheck的问题


#1

问题是这样的,我以前用的是rtags, 最近开始换lsp。用的后端是ccls。 没有启用lsp-ui,因为觉得太花哨,不怎么需要。 但是flycheck我觉得还是挺好用的。 我现在的一个c++项目,用的是cmake生成compile_commands.json. 这个项目可以正常编译运行,但是打开cpp文件的时候,flycheck经常会提示一些头文件找不到,这些头文件一般是cmake里面设置了搜索路径,所以cpp文件里直接include了他们,而没有写出完整的相对路径。 这个问题需要怎么解决呀,需要额外设置什么flycheck的checker么?我找了一下也没有找到ccls提供什么checker呀。


#2

补充一下, 我编译用的是g++, 我用flycheck-verify-setup看到的信息是可以用c/c+±clang和c/c+±gcc,但是这两个我都试过,都是一样的会有一些头文件找不到。


#4

Flycheck runs Clang directly. You need to explicitly configure the include path for syntax checking by setting flycheck-clang-include-path accordingly. You must do so yourself, this is not done automatically based on your Makefile.

You can set the path via file/dir local variables, or write some custom Emacs Lisp code to parse your Makefile.

搬运个Stack Overflow的回答,意思写的挺明白了。


#5

补充: