32

ARM のクロス コンパイラとして使用するために clang をコンパイルしましたが (で構成することにより./configure --target=armv7l-unknown-linux-gnueabihf)、C コードをコンパイルしようとすると、/usr/bin/as. すでに ARM 用にコンパイルされた binutils があり、それらは別のディレクトリにあります。指定したアセンブラを使用するように clang (または llvm) に指示するにはどうすればよいですか?

4

2 に答える 2

2

configure に --host オプションを渡してみてください。これにより、すべての cc ar などのユーティリティの前に armv7l-unknown-linux-gnueabihf- が付きます。例:

./configure --host=armv7l-unknown-linux-gnueabihf --build=i686-unknown-linux-gnu

configure を autotools で使用しているので、次を参照してください: automake クロスコンパイル

于 2013-12-11T18:50:53.723 に答える
0

私は常に ./configure を使用してソース ディレクトリから構成するのに問題があり、最終的にあきらめました。最近では、常に別のディレクトリ、つまり ..//configure から構成しますが、構成には絶対パスを使用することをお勧めします。

ARM binutils は、clang に使用しているのと同じプレフィックスにインストールする必要があります。また、clang を構成およびビルドするときに、それらがパスにあることを確認してください。つまり、PATH=/some/prefix/bin:$PATH; です。/configure --target=armv7l-unknown-linux-gnueabihf. パッケージ化の目的でそれらを別々のディレクトリに保持している場合は、 make install DESTDIR= が役立ちます。

私は通常、 clangをビルドしませんが、devkitARM に使用するビルドスクリプトが役立つ場合があります。

于 2013-01-02T08:18:30.700 に答える