emacs-lsp / emacs-ccls

Emacs client for ccls, a C/C++ language server
200 stars 29 forks source link

Still have the issue that ccls report unexpected compile error #48

Closed dlyr closed 5 years ago

dlyr commented 5 years ago

Hi, I still have the issue #33 I do not know how to investigate, I updated every thing, tried with eglot and lsp. The situation is the same (ccls report error to flymake, but there is no error when I copy and execute the command line from ccls log

Thanks in advance.

here is how to reproduce, with uptodate package, and master ccls

run with --log-file=/tmp/ccls.log --init='{"cache": {"directory": "/ssd/vanderha/cache/ccls-cache/"}, "clang": {"excludeArgs": ["-Wno-misleading-indentation"]}}' -v=1 git clone --single-branch --branch ccls --recursive https://github.com/dlyr/Radium-Engine/ TEST cd TEST mkdir build cd build cmake ../ -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DRADIUM_USE_COTIRE=Off (not sure cotire interacts, but I use to turn it off with ccls) make -j (not sure need to compile ... but there are some "installed" include and generated files ...) cd ../ ln -s build/compile_commands.json . emacs -Q config.el evaluate the lines here open tests/CoreTests/src/algebra.cpp wait everything loads, no flymake errors add a blank line, save, and I get 19 flymake erros.

MaskRay commented 5 years ago

I think this is likely a configuration problem. -v=1 will give clang command lines. You can check whether it matches the build command.

For files not listed in compile_commands.json entries, ccls infers its clang command line. If you want to debug the logic,

  1. gdb -p $(pgrep -fn ccls), set a breakpoint at project.cc:507 (near Project::findEntry)
  2. Open the file in the editor
  3. In gdb, continue, and single stepping.