2016-12-02 106 views
0

我已經爲ARM體系結構交叉編譯了一點C源代碼。編譯和鏈接可以,但是在運行時我有這個錯誤:無法解析符號'__aeabi_d2iz'。無法解析符號'__aeabi_d2iz'

我已經指出問題來自int和double之間的顯式轉換。有人能幫我弄清楚發生了什麼事嗎?投射浮點值不會導致問題。

下面是我使用的編譯和鏈接選項:

arm-buildroot-linux-uclibcgnueabi-gcc -mcpu=arm920t -mtune=arm920t -mapcs-frame -mapcs-stack-check -fno-stack-limit -Wall -c test.c -o test.o 
arm-buildroot-linux-uclibcgnueabi-gcc -mcpu=arm920t -mtune=arm920t -mapcs-frame -mapcs-stack-check -fno-stack-limit -D_REENTRANT -o test.x test.o -lm 

這裏是源代碼:

int main(void) 
{ 
    int i; 
    double dTest = 123.456; 

    i = (int)dTest; // <--- runtime error : can't resolve symbol '__aeabi_d2iz' 
    printf("Converted i=%d\n", i); 
} 
+0

對不起,我誤解爲鏈接時錯誤,但現在知道您正在交叉編譯:您在運行時是否與目標上的鏈接庫完全相同? (加載的問題;他們幾乎肯定不是) – Notlikethat

回答

1

問題從錯配版本的數學庫之間就目標和一個我正在鏈接到。