le problème des nombres flottants en programmation ndless est depuis longtemps connu : je ne m'étendrai pas sur le sujet mais ils sont tout simplement inutilisables, ce qui rend impossible l'utilisation de toutes librairies qui demandent en argument de leur fonction un float ou un double (dans mon cas, c'est la librairie SDL_rotozoom, que j'aimerais utiliser).
Cependant je remarquais que SDL_primitives, qui permet d'afficher des graphiques complexes à l'écran, marchait correctement (lignes diagonales, ellipses, polygones, etc...). Or si je ne me trompe pas, des floats (ou double) sont utilisés pour l'affichage de ces figures, non ?
Je me suis alors dit que j'allais créer une librairie sans utiliser le compilateur ndless, qui convertit des floats en int et réciproquement, de telle sorte qu'en programmant avec ndless je n'ai a utilisé que des int.
Le problème, c'est que la librairie statique que j'ai créé contient des fichiers .o de type "MS Windows COFF Intel 80386 object file", alors que ne sont reconnus par le compilateur ndless que des fichiers de type "ELF 32-bit LSB...". Dois-je mettre une option particulière lorsque je compile afin d'obtenir le bon type de fichiers objets ?
Je compile avec MingW et gcc, et voici mon makefile, il est tout simple :
- Code: Select all
SOURCES = $(wildcard *.c)
EXEC = testIntConvertor.exe
OBJECTS = $(SOURCES:.c=.o)
CC = gcc
CFLAGS = -Wall
LIBS = -lmingw32
all: $(EXEC)
$(EXEC): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@ $(TARGET)
clean:
rm -rf *.o