10

私はUbuntu12.04x86 64ビットを使用してllvm/clangおり、公式のsvnリポジトリから32ビットバージョンを正常にコンパイルしました。

私は現在、ARM用のc ++コードをコンパイルしようとしています。この時点では、armv5vsarmv7aのようなプラットフォームのバージョンは気にせず、プラットフォームスイッチがどのように機能するかに焦点を当てていますclang

llvm-config --targets-built
ARM CellSPU CppBackend Hexagon Mips MBlaze MSP430 NVPTX PowerPC Sparc X86 XCore

しかし、次のコマンドは機能しません

clang++ -arch arm soft.cpp -o soft_ARM

出力は

clang-3: warning: argument unused during compilation: '-arch arm'

-arch=armgccのようなバリアントや、、のような他の組み合わせも試しましたが-arch=armv7a-march=armv5何も機能しないようです。

いくつかのドキュメントを読んだ後、clangはMAC OS X / DarwinでのみARMで機能し、他のOSではARMで機能しないことに気付きました。

clangを使用してARM用にコンパイルするにはどうすればよいですか?また、の出力llvm-config --targets-builtは実際には何ですか?

4

1 に答える 1

9

-archはダーウィンのみの機能です。ダーウィン以外のプラットフォームでは-targetを使用する必要があります。または、ターゲットトリプレットを指定してllvm / targetをコンパイルするか、clangから-clangへのリンクを作成します。あなたの場合、ターゲットトリプレットはarm-none-linux-gnueabiになります

于 2012-11-05T02:08:39.193 に答える