ADK中int转float出错!
发现在ADK中int类型赋值给float会出错:int main(void)
{
int a = 5;
float b = a;
b = 0;
return 0;
}报错:
main.c: In function `main':
main.c:18: fatal error: Attempt to compile floating point code without -float
compilation terminated.
make: *** Error 1
Finished.强制转换同样会报错:
int main(void)
{
int a = 5;
float b = (float)(a);
b = 0;
return 0;
}
报错内容完全一样,就不贴了。
同样把int赋值给float也报错:
int main(void)
{
int a = 5;
float b = 1.32;
a = b;
return 0;
}
但如果float和int分别运算,是可以的:
int main(void)
{
int a = 5;
float b = 1.32;
a++;
b = 0.3;
return 0;
}编译通过。
哪位大神知道如何设置这个诡异的问题啊。看报错提示,应该是在编译条件中增加-float。但是:
(1)不知道往哪儿加
(2)float直接和float运算是可以的,说明系统已经支持float运算了啊
有大神吗 我只知道float的存储格式是特殊的 定点浮点吧,其实是模拟的软浮点。 hhyytt 发表于 2018-2-1 11:31
定点浮点吧,其实是模拟的软浮点。
不太明白你的意思。
VM部分应该是基于ARM的吧,ARM里这么做完全没问题,这里就出错了。
DSP是定点的。 pkuzhx 发表于 2018-2-1 11:37
不太明白你的意思。
VM部分应该是基于ARM的吧,ARM里这么做完全没问题,这里就出错了。
DSP是定点的。
编译器软浮点,可能有问题。 编译器的问题,语法上来说是没有问题的。
页:
[1]