4

プロジェクトの特定の cpp ファイルをコンパイルすると、次のような警告が表示されます

Compile++ arm    : MYAPP <= myfile.cpp
/tmp/cc53K5MQ.s: Assembler messages:
/tmp/cc53K5MQ.s:887: Warning: swp{b} use is deprecated for this architecture

ただし、この警告には行番号が指定されていないため、どこを見ればよいかわかりません。

なぜこの警告が表示されるのか分かりますか?

4

2 に答える 2

6

このswp{b}命令は、ARMv6 以降では非推奨です。さらに悪いことに、ARMv7 ではまったくサポートされておらず、Linux カーネルの不正な命令トラップで修正されています (ランタイム コストがかかる)。あなたのコンパイラはそれを絶対に生成すべきではありません。

CodeSourcery コンパイラでもこの問題を確認しました。コード ジェネレーター フェーズはswp{b}命令を発行しますが、アセンブラーはターゲット アーキテクチャでサポートされていないことを十分に認識しています。これはむしろ、コマンドラインで指定された正しいターゲット アーキテクチャがあることを意味します。

新しいバージョンの GCC にアップグレードすることで問題を解決しました。

于 2012-11-28T11:04:00.177 に答える
1

--save-temps生成されたファイルを GCC が削除しないようにするために使用します。

于 2012-11-27T12:36:00.410 に答える