2016-12-02 107 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

问题从错配版本的数学库之间就目标和一个我正在链接到。