Проблема компоновщика неопределенных символов в компиляторе Diab при вводе массива данных от float до long long
Я написал небольшой пример кода и выполнялся в компиляторах GCC и DIAB.
#include<stdio.h>
int main()
{
float a[10];
long long int b[10];
int i;
for (i =0;i<10;i++)
{
a[i] = 1.256*i;
b[i] = (long long int)a[i];
printf("%f\t%lld\n",a[i],b[i]);
}
return 0;
}
Выход в компиляторе GCC:
0,000000 0 1,256000 1 2,512000 2 3,768000 3 5,024000 5 6,280000 6 7,536000 7 8,792000 8 10,048000 10 11,304000 11
Проблема в компиляторе DIAB:
dld.exe: предупреждение: неопределенный символ '__asr64' в файле 'sfpfftoll.o(C:\WINDRI~2\diab\580~1.0-3\PPCVLEES\libimpfp.a)' dld.exe: предупреждение: неопределенный символ '__lsl64' in file 'sfpfftoll.o(C:\WINDRI~2\diab\580~1.0-3\PPCVLEES\libimpfp.a)' dld.exe: ошибка: не найдены неопределенные символы - нет выходных данных make.exe: *** [..\output\bin\xxxxxxx.elf] Ошибка 1
Есть ли работа по преобразованию массива с плавающей точкой в массив long long int? Я пытался использовать указатели, но все еще сталкивался с той же проблемой компоновщика.