为我的项目编译某些cpp文件时,我收到类似这样的警告
Compile++ arm : MYAPP <= myfile.cpp
/tmp/cc53K5MQ.s: Assembler messages:
/tmp/cc53K5MQ.s:887: Warning: swp{b} use is deprecated for this architecture
但是,此警告中没有给出任何行号,所以我不知道在哪里查看。
你知道为什么我会收到这个警告吗?
答案 0 :(得分:6)
在ARMv6及更高版本中不推荐使用swp{b}
指令。更糟糕的是,它不支持在ARMv7中的所有并且在Linux内核中的非法指令陷阱中被修复 - 以一些运行时成本。您的编译器绝对不应该生成它。
我也使用CodeSourcery编译器看到了这个问题。代码生成器阶段发出swp{b}
指令,但汇编器完全清楚它们不适用于您的目标体系结构。这意味着您具有在命令行上指定的正确目标体系结构。
我通过升级到更新版本的GCC来解决问题。
答案 1 :(得分:1)
使用--save-temps
让GCC不删除生成的文件。