c文件include c文件无法建索引,ccls和clangd都无法建索引
a.c
#include "b.c"
int main() {
testb();
}
b.c
static void testb(){
printf("b.c");
}
使用ccls或者clangd无法跳转
c文件include c文件无法建索引,ccls和clangd都无法建索引
a.c
#include "b.c"
int main() {
testb();
}
b.c
static void testb(){
printf("b.c");
}
使用ccls或者clangd无法跳转
有么有生成compile_command.json? 没有的话应该是跳转不了的。
生成的compile_command.json中只有a.c的编译命令,b.c不知道怎么手动引进来
大佬们有解决办法吗
题外话:话说有任何非要include一个.c文件的理由吗?是什么编程场景需要这样子写代码呢?有可能lsp server的作者没有考虑这种情形(猜)
clion却能正确找到文件
GitHub - andoma/vmir: Virtual Machine for Intermediate Representation 大佬帮忙测试下这个项目? vmir/vmir_bitcode_parser.c at master · andoma/vmir · GitHub 从这个文件里函数跳出去看看
求教怎么改的 另外你lsp-client用的是什么 clangd还是ccls
SRCS = src/main.c \
src/vmir.c \
src/sample.c \
tlsf/tlsf.c \
clangd
你这属于CMakelists.txt
或者 makefile
没写对,你这个要是make一下估计大概率报错,因为project不知道还有b.c
的存在。
这个和clangd、lsp-mode本身没关系,是你的project管理文件(即那个cmakelists,或者makefile 如果用bear)没写对。
Clion可以是因为(现在不清楚,当初它还是免费版时)用的并不是lsp模式,不像lsp+ccls/clangd高度依赖于compile_command.json.
呃,居然是个“老坟”,好吧