18

私は手書きのアセンブリを含むプロジェクトを持っています。AT&T 構文は GCC で正常に動作しますが、私が行ったことはなく、アセンブリについてほとんど知りません。これを Clang でビルドしようとすると、奇妙な問題が発生します。

LLVM のドキュメントでは、「ほとんどの X86 ターゲット」は、システム アセンブラではなく LLVM の統合アセンブラを使用すると述べています。可能な回避策として、後者を明示的に使用したいと思います。私 (まあ、Google) は、これを行う方法に関する情報を見つけることに成功していません。

質問: Clang / LLVM に統合アセンブラの代わりにシステム アセンブラを使用するように要求または強制する方法はありますか?

(いつでも Read The Source™ にアクセスできることはわかっていますが、文書化されたアプローチがあるかどうかを知りたいです。)

4

1 に答える 1

27

manページでこれを完全に見逃していたことがわかりました:

-integrated-as -no-integrated-as

統合アセンブラの使用をそれぞれ有効および無効にするために使用されます。統合アセンブラがデフォルトでオンになっているかどうかは、ターゲットに依存します。

コンパイラの呼び出し時に無効にするには:

clang -no-integrated-as -c foo.c

または:

export CC="clang -no-integrated-as"
make
于 2012-06-20T12:26:01.820 に答える