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