我已经为 ARM 架构交叉编译了一些 C 源代码。编译和链接正常,但在运行时出现此错误:无法解析符号“__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);
}
问题来自目标上的数学库与我链接到的数学库之间的版本不匹配。
我是一名优秀的程序员,十分优秀!