我目前正在学习计算机工程并参加嵌入式系统课程,我的用途是我们使用自定义库,然后在旧版本的 Codewarrior 中编译它。
当我没有在本地编译代码而是稍后使用旧的 IDE 编译它时,我正在考虑如何使用 nvim 为我的 lsp 创建包含路径
任何智慧都会受到赞赏。
注意:在课堂上我们需要使用外部编辑器,而旧版本的 Code Warrior 非常糟糕,它用于为我们的微控制器进行编译,但无法用于编写代码。
总而言之,我希望找到一个解决方案,并在入门页面和堆栈溢出上倾注了几个小时,尝试了不同的方法,但没有成功。
最简单的方法可能是使用
.clangd
文件。根据您评论中的路径,.clangd
文件应如下所示:
CompileFlags:
Add: -I/home/bjc1269/Documents/github/libraries/lib/hc12c/include
我在您评论中的
.clangd
文件中看到不起作用的一些事情是:
${workspaceFolder}
。这是一个 VSCode 功能,可在某些 VSCode 设置(如
"clangd.arguments"
)中使用,但在
.clangd
文件中不受支持,该文件与编辑器无关(例如,它适用于没有“概念”的编辑器)工作区”)。
~
。将
~
扩展为
/home/<username>
是 shell 的一项功能。
.clangd
中指定的命令行参数直接传递给编译器,不经过shell处理,因此
~
不起作用。
**
这样的球体。老实说,我什至不确定在指定包含目录的上下文中它的预期语义是什么。
-I
的参数内。方括号可能会作为 YAML 语法出现在 .clangd
文件中,用于指定列表中的多个值,例如您可能有:
CompileFlags:
Add: [-I/path/to/directory1, -I/path/to/directory2]
但如果你写 -I=[/path/to/directory]
,括号就会逐字传递给编译器,编译器不理解这种语法。