#include <math.h>
#include <stdio.h>
int main()
{
float position;
float rad_angle = (10 * 3.1459)/180;
position = 100 * cos(rad_angle);
position = 200 * sin(rad_angle);
printf("position= %f\n", position);
return 0;
}
Próba kompilacji toolchain'em Thorsteena kończy się:
/usr/lib64/gcc/m68k-atari-mint/9/../../../../m68k-atari-mint/bin/ld: /tmp//ccBofFdp.o:/tmp//ccBofFdp.o:(.text+0xa): undefined reference to `cosf'
/usr/lib64/gcc/m68k-atari-mint/9/../../../../m68k-atari-mint/bin/ld: /tmp//ccBofFdp.o:/tmp//ccBofFdp.o:(.text+0x1e): undefined reference to `sinf'
collect2: error: ld returned 1 exit status
To jest dokładnie przypadek jak miałem tu:
http://www.atari.org.pl/forum/viewtopic.php?id=18467
Pomysł AdamaK z zalinkowanego tematu jak najbardziej działał, ale miał dwa ale:
- math-68881.h jak dobrze pamiętam z czymś się gryzło (podwójne deklaracje) więc jeden zestaw zahaszowałem (po czym wszystko już działało)
- wymagane FPU
Teraz wymaganie FPU nie przejdzie, a do tego zabawa z podmianą na komentowany z niektórych deklaracji math-68881.h to niefajne obejście, więc rozwiązanie raczej słabe.
Oczywiście jak to kompiluję pod linuksem to wszystko jest OK, czyli to coś w naszym toolchain'ie. Stąd pytanie, jak te kilka linijek skompilować bez żadnych obejść/hack'ów itp?