アーカイブの ../lib/lk/liblk.a(debugfs.o) メンバーはオブジェクトではなく、perf クロスコンパイル時にエラーが発生します。

アーカイブの ../lib/lk/liblk.a(debugfs.o) メンバーはオブジェクトではなく、perf クロスコンパイル時にエラーが発生します。

armのパフォーマンスツールをクロスコンパイルしようとすると、次のエラーが発生します。

../lib/lk/liblk.a: member ../lib/lk/liblk.a(debugfs.o) in archive is not an object

私は何をしましたか?

cd stable-kernel/tools/perf
make ARCH=arm CROSS_COMPILE=arm-linux-gnu-eabi-gcc

驚くべきことに、実際に見ると会員ですね。

ar -t ../lib/lk/liblk.a 
debugfs.o 

この異常な行動の理由は何ですか?

PS:x86用にコンパイルするとき、これは起こりませんでした(通常の方法でmakeの後にmake install)。

ベストアンサー1

liblk.aをARM elf形式にコンパイルするには、CCをARMツールチェーンにエクスポートする必要があります。

export CC=arm-linux-gnueabihf-gcc

おすすめ記事