2013-03-27 73 views
-1

我正在编译一个android工具链的android内核。 在驱动程序内部,我需要使用双重算术,但是当我编译时,我得到了很多错误,每次使用双重类型时都会有一个错误。 比如我得到:这是INT翻番投编译内核时出错:缺少双重算术?

/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 。

如何解决这个问题?

+0

您是否与'libgcc'链接?如果是,请发布您的构建脚本。 – 2013-03-27 12:52:57

+0

@MichaelFoukarakis你愿意告诉我该怎么做吗?我还是个初学者。我认为这可能是问题所在。 – Vektor88 2013-03-27 13:04:07

+0

我已经发布了一个可能的解决方法,但要弄清楚这一点,你需要提供你的构建脚本。另外,你使用的是哪个NDK版本? – 2013-03-27 13:20:21

回答

2

出于某种原因,您可能不会链接到libgcc。直到您找出原因,您可以通过将以下内容添加到Android.mk来解决问题:

LOCAL_LDFLAGS := $(call link-whole-archives, $(call host-path, $(TARGET_LIBGCC))) 
+0

我没有任何'Android.mk'文件,它只是内核文件夹。为了编译它,我在终端上输入'make ARCH = arm CROSS_COMPILE =/path/to /...- eabi- -j12 uImage'加上'-lgcc'并不能解决我的问题。 – Vektor88 2013-03-27 13:24:22