2013-03-27 72 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