[开发工具] 用的gcc编译器,clangd做代码提示,但是报错Unknown argument: '-mthumb-interwork'

[复制链接]
 楼主| 狄克爱老虎油 发表于 2024-7-19 14:38 | 显示全部楼层 |阅读模式
程序可以编译通过,就是报错问题没法解决
classroom 发表于 2024-7-26 18:56 | 显示全部楼层
检查GCC版本
laocuo1142 发表于 2024-7-26 18:56 | 显示全部楼层
如果你的项目或Makefile中使用了 -mthumb-interwork 选项,并且你正在使用较新版本的GCC,尝试移除这个选项,因为现代GCC和ARM架构的硬件通常能够自动处理Thumb和ARM之间的切换,而无需显式指定。
flycamelaaa 发表于 2024-7-26 18:57 | 显示全部楼层
更新或修改项目配置
powerantone 发表于 2024-7-26 18:57 | 显示全部楼层
使用Clang/Clangd
stormwind123 发表于 2024-7-26 18:57 | 显示全部楼层
-mthumb-interwork 选项可能不再适用于你当前的GCC版本或ARM架构。检查你的GCC版本,查阅文档,并根据需要更新或修改你的项目配置。
冰春彩落下 发表于 2024-8-24 21:14 | 显示全部楼层
在使用 clangd 进行代码提示时,如果遇到报错 Unknown argument: '-mthumb-interwork',这通常意味着 clangd 不识别这个编译器选项。-mthumb-interwork 是一个特定于 GCC 编译器的选项,用于在 ARM 架构上支持 Thumb 和 ARM 指令集之间的交互。
别乱了阵脚 发表于 2024-8-24 22:00 | 显示全部楼层
clangd 是基于 Clang 编译器的工具,而 Clang 可能不支持某些 GCC 特有的选项。为了解决这个问题,您可以尝试移除或替换选项

三生万物 发表于 2024-8-25 01:00 | 显示全部楼层
如果 -mthumb-interwork 不是必需的,您可以尝试从编译器选项中移除它,看看是否能解决问题。如果需要这个选项,您可以尝试找到 Clang 等效的选项,或者检查是否有其他方式可以实现相同的功能。

光辉梦境 发表于 2024-8-25 02:00 | 显示全部楼层
您可以在项目的编译数据库(compile_commands.json)中调整编译选项,确保 clangd 使用的选项是它能够识别的。

夜阑风雨 发表于 2024-8-25 05:00 | 显示全部楼层
如果您的项目使用了 CMake,您可以使用 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 生成编译数据库,并手动编辑它以移除不兼容的选项。

淡漠安然 发表于 2024-8-25 08:00 | 显示全部楼层
如果您使用 clang-tidy 进行代码检查,您可以使用 -extra-arg 选项来传递额外的编译器参数,这样可能可以避免 clangd 直接处理这些选项。

暖了夏天蓝了海 发表于 2024-8-25 09:00 | 显示全部楼层
确保您使用的是最新版本的 clangd,因为新版本可能会增加对更多 GCC 选项的支持。

江河千里 发表于 2024-8-25 10:00 | 显示全部楼层
如果可能,尝试使用 clang 编译器来编译您的项目,而不是 GCC。这样,clangd 和编译器之间的选项兼容性问题可能会减少。

远山寻你 发表于 2024-8-25 13:00 | 显示全部楼层
您可以在项目的根目录下创建一个 .clangd 文件,并在其中指定编译器选项。

一秒落纱 发表于 2024-8-25 14:00 | 显示全部楼层
能通过编译,不能生成固件?直接烧录呗

您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

289

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部