我目前正在学习计算机工程,并采取嵌入式系统类,我的问题是,我们使用自定义库,然后编译它在旧版本的代码战士。
如何使用nvim为lsp创建包含路径
当我不是在本地编译代码,而是稍后使用旧IDE编译时,我想知道如何使用nvim为我的lsp创建include路径
任何智慧都会被赞赏。
注意:在课堂上,我们被要求使用一个外部编辑器,旧版本的代码战士是非常糟糕的,它是用于编译我们的微控制器,但不能用于编写代码。
我做过的事
- 我尝试通过复制路径位置的vscode配置来使用compile_commands. json
- 我试过用.clangd文件-我...
- 4.我试过其他方法,但到目前为止没有成功
总之,我跳着寻找一个解决方案,并已倾注了入门页面和堆栈溢出几个小时,尝试不同的方法无济于事。
2条答案
按热度按时间yqlxgs2m1#
最简单的方法可能是使用
.clangd
文件,根据注解中的路径,.clangd
文件应该如下所示:我在你的评论中看到的
.clangd
文件中 * 不 * 工作的几件事是:${workspaceFolder}
。这是VSCode的一项功能,适用于某些VSCode设置,如"clangd.arguments"
,但在.clangd
文件中不受支持,因为.clangd
文件与编辑器无关(例如,它适用于没有“工作区”概念的编辑器)。~
。将~
扩展为/home/<username>
是shell的一项功能。在.clangd
中指定的命令行参数直接传递给编译器,而不经过shell处理,因此~
将不起作用。**
这样的全局变量。老实说,我甚至不确定在指定include目录的上下文中,它的语义是什么。-I
的参数 * 内的方括号。方括号可能作为YAML语法出现在.clangd
文件中,用于在列表中指定多个值,例如,您可能具有:但是如果你写-I=[/path/to/directory]
,方括号会被原封不动地传递给编译器,编译器不理解这种语法。i34xakig2#
首先:欢迎来到本网站!:D
我建议使用
bear
,你只需用build-command调用它,clangd
LSP就会自动读取includes。