首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用clangd LSP的Neovim中的stdio.h和FPU误差

使用clangd LSP的Neovim中的stdio.h和FPU误差
EN

Stack Overflow用户
提问于 2022-06-04 15:38:41
回答 1查看 253关注 0票数 0

我有一个使用stm32f103初始化的stm32cubemx项目,我使用了neovim进行编辑,使用arm-none-eabi-gcc编译代码(使用自动生成的makefile)。

我还安装了嘎嘎声 LSP和来生成compile_commands.json文件。除了有两个错误外,一切都很好:

  1. 未找到stdio.h文件
  2. 编译器为没有FPU的设备生成FPU指令(请检查__FPU_PRESENT)。

我查看了core_cm3.h文件,__FPU_USED被禁用了,这正是clang所说的。

代码语言:javascript
运行
复制
/** __FPU_USED indicates whether an FPU is used or not.
    This core does not support an FPU at all
*/
#define __FPU_USED       0U

但是,我在makefile标志中找不到任何允许FPU进行编译的行。

代码语言:javascript
运行
复制
# fpu
# NONE for Cortex-M0/M0+/M3

# float-abi


# mcu
MCU = $(CPU) -mthumb $(FPU) $(FLOAT-ABI)

我也注释掉了$(FPU)$(FLOAT-ABI),但是错误仍然存在。虽然我可以在没有任何问题的情况下编译这个项目(因为gcc没有任何抱怨),但是这些错误让我有点不安。

有办法纠正这些错误吗?或者有没有gcc的LSP来代替clangd?

neovim的LSP列表中也有ccls,但我无法安装它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-05 07:06:59

有办法纠正这些错误吗?

https://clangd.llvm.org/config#files你可以:

  • 创建clangd配置文件
  • 指定-sysroot命令以指定构建链的位置(我的系统上的/usr/arm-none-eabi/)
  • 以及其他需要的选项(-isysroot-nostdlib等)如果你用的话。

无论如何,我建议移动CMake并生成compile_command.json。

有没有以gcc为基础的LSP代替clangd?

我不知道有什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72501038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档