cquery的缓存目录怎么设置啊?

在开发c++时,我安装了cquery和eglot。发现在工程目录下有个隐藏文件夹.cquery_cached_index,应该是cquery的缓存。现在的问题是,在调用make时,会连接缓存文件夹的目标文件(.o),导致连接失败。如果把缓存文件夹(.cquery_cached_index)删掉,连接就没有问题了。

各位大神,请问怎么修改cquery默认的缓存目录?让它不要出现在工程目录下。 谢谢!

试过了, cquery-cache-dir不起作用。

他們用了 Add caching directory flexibility · cquery-project/emacs-cquery@42b0c43 · GitHub

這個cquery-cache-dir-consolidated我不是特別喜歡,另外也不喜歡他們用build/compile_commands.json來定位LSP的rootUri。但這個功能是有用的,比如把/tmp/c引導到~/.cache/cquery/@tmp@c,但我的elisp水平還不足以寫一個好用的ccls cache function…

我現在有個小小的心願是看到eglot同時寫上ccls和clangd clangd support · Issue #75 · joaotavora/eglot · GitHub

另外,我相當懷疑你鏈接時用了.cquery_cached_index/**/*.o之類。你的構建檔案需要修復。

1 个赞

在emacs配置文件中添加(setq cquery-cache-dir-consolidated-path “/tmp/cquery_cache”)还是无效。

发现缓存目录还是在当前工程目录下,指定的目录/tmp/cquery_cache也没有被创建。

如果有签 FSF 的 copyright Assignments 的话,或许可以自己发一个 pr?

修改了makefile和.gitignore, 算是把这个问题绕过去了:(

可能跟你cache目录放置的地方有关,我把cached目录放在家目录下是可以的,或许是没有权限在/tmp/下创建文件夹,放在家目录下是ok

但是我尝试过,我使用emacs时登录的普通用户是可以在/tmp下创建文件夹的.