1

Salut à tous,

Alors voilà j'ouvre un thread concernant le développement avec Lattice C. Je vous préviens, je débute dans la programmation sous C sous Atari et j'ai donc opté pour l'approche du "commençons par le début".
Je commence donc avec mon premier problème:
soit le petit programme suivant:

#include <stdio.h>
#include <conio.h>
// #include <float.h> // ne résoud pas le problème...

void main() {
float a,b,result;
a=-21.43;
b=4.782;
result=a+b;
printf("a+b = %f\t\t", result);
puts("Pour continuer, frapper une touche...");
getch();
}

Lorsque je fais un make all, j'obtiens l'erreur suivante à la phase de linking:

Undifined symbols First Referenced
__CXA44 File 'exI_08.O'
__CXV45 File 'exI_08.O'

Maintenant, si vous remplacez les float par des int et %f par %d, tout fonctionne correctement...

Qqn sait-il comment résoudre cette erreur?

Merci

François

2

J'en sais rien, au pire utilise la virgule fixe (pour gerer tes float ) car si mes souvenirs sont bons le st n'a pas de fpu.

3

Merci skweek,

Je ne sais pas ce que tu veux dire par "utiliser la virgule fixe", mais tu m'as donné une idée... J'utilise un falcon avec FPU et j'ai chipoter avec les paramètre de compilation et cela fonctionne maintenant.
Donc, pour ceux que cela intéresse, voici la manipulation (Lattice C v5.6):
Dans la fenêtre de dialogue qui s'affiche suite à la sélection du menu Option/Compiler/General, choisissez
Maths "Auto MC68881/2".
ou
Maths "Software IEEE"

Je suppose que "Software IEEE", c'est pour les atari sans FPU (la majorité donc...). Si qqn peut confirmer!

Relancer le build complet et cela fonctionne!

François

4

Esaye #include <math.h> et rajoute un 'f' derrière tes nombre (-21.43f par exemple). Sinon ça a l'air correct... Vérifie aussi si le chemin vers tes librairies est correct...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

5

brainois :
Je suppose que "Software IEEE", c'est pour les atari sans FPU (la majorité donc...). Si qqn peut confirmer!
Pile poil, t'as tout compris! wink
Stabylo/The Removers
http://removers.atari.org/