打印
[开发工具]

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

[复制链接]
344|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
程序可以编译通过,就是报错问题没法解决

使用特权

评论回复
沙发
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 | 只看该作者
更新或修改项目配置

使用特权

评论回复
5
powerantone| | 2024-7-26 18:57 | 只看该作者
使用Clang/Clangd

使用特权

评论回复
6
stormwind123| | 2024-7-26 18:57 | 只看该作者
-mthumb-interwork 选项可能不再适用于你当前的GCC版本或ARM架构。检查你的GCC版本,查阅文档,并根据需要更新或修改你的项目配置。

使用特权

评论回复
7
冰春彩落下| | 2024-8-24 21:14 | 只看该作者
在使用 clangd 进行代码提示时,如果遇到报错 Unknown argument: '-mthumb-interwork',这通常意味着 clangd 不识别这个编译器选项。-mthumb-interwork 是一个特定于 GCC 编译器的选项,用于在 ARM 架构上支持 Thumb 和 ARM 指令集之间的交互。

使用特权

评论回复
8
别乱了阵脚| | 2024-8-24 22:00 | 只看该作者
clangd 是基于 Clang 编译器的工具,而 Clang 可能不支持某些 GCC 特有的选项。为了解决这个问题,您可以尝试移除或替换选项

使用特权

评论回复
9
三生万物| | 2024-8-25 01:00 | 只看该作者
如果 -mthumb-interwork 不是必需的,您可以尝试从编译器选项中移除它,看看是否能解决问题。如果需要这个选项,您可以尝试找到 Clang 等效的选项,或者检查是否有其他方式可以实现相同的功能。

使用特权

评论回复
10
光辉梦境| | 2024-8-25 02:00 | 只看该作者
您可以在项目的编译数据库(compile_commands.json)中调整编译选项,确保 clangd 使用的选项是它能够识别的。

使用特权

评论回复
11
夜阑风雨| | 2024-8-25 05:00 | 只看该作者
如果您的项目使用了 CMake,您可以使用 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 生成编译数据库,并手动编辑它以移除不兼容的选项。

使用特权

评论回复
12
淡漠安然| | 2024-8-25 08:00 | 只看该作者
如果您使用 clang-tidy 进行代码检查,您可以使用 -extra-arg 选项来传递额外的编译器参数,这样可能可以避免 clangd 直接处理这些选项。

使用特权

评论回复
13
暖了夏天蓝了海| | 2024-8-25 09:00 | 只看该作者
确保您使用的是最新版本的 clangd,因为新版本可能会增加对更多 GCC 选项的支持。

使用特权

评论回复
14
江河千里| | 2024-8-25 10:00 | 只看该作者
如果可能,尝试使用 clang 编译器来编译您的项目,而不是 GCC。这样,clangd 和编译器之间的选项兼容性问题可能会减少。

使用特权

评论回复
15
远山寻你| | 2024-8-25 13:00 | 只看该作者
您可以在项目的根目录下创建一个 .clangd 文件,并在其中指定编译器选项。

使用特权

评论回复
16
一秒落纱| | 2024-8-25 14:00 | 只看该作者
能通过编译,不能生成固件?直接烧录呗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

285

帖子

0

粉丝