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