-1

Android ツールチェーンを使用して Android カーネルをコンパイルしています。ドライバー内では double 演算を使用する必要がありますが、コンパイルすると double 型を使用するたびに 1 つのエラーが発生します。たとえば、次のようになります:これは int to double キャストです

/home/vektor/nckernel/customer/drivers/misc/adc_js.c:288: undefined reference to `__aeabi_i2d'

カーネルをコンパイルするには、次のコマンドを使用します。

make ARCH=arm CROSS_COMPILE=/path/to/...-eabi- -j12 uImage

そして、私の Makefile では-L/path/to/libgcc.a、gcc ライブラリを明示的に ld と gcc にリンクしました。

この問題を解決するには?

4

1 に答える 1

2

libgcc何らかの理由でリンクしていない可能性があります。理由がわかるまで、以下を に追加することで問題を回避できますAndroid.mk

LOCAL_LDFLAGS := $(call link-whole-archives, $(call host-path, $(TARGET_LIBGCC)))
于 2013-03-27T13:18:23.983 に答える