xcode n'aime pas mon code

koyot3

Membre actif
30 Juin 2006
201
0
bonjour
étant habitué a travailler sous dev c avec windows
j'ai installé xcode sur mon mac afin de continuer a développer en c

une fois installé, j'ai voulu testé avec un programme c des plus basiques (calcul de volume):
-saisir 3 données
-calcul avec ces trois variables
-affichage du résultat

malheureusement, ca na passe pas sur xcode !! c'est pourtant un programme que j'ai réalisé il y deux ans

avec le débug, il m'affiche des erreurs sur mes librairies windows (math.h, conio.h...)
et sur mes scanf....

on m'a suggéré un probleme avec ces librairies qui ne sont pas les meme que sur windows...
or je suis le seul a taffer sur un mac ...:(

dc si quelqu'un pouvait me filer un petit coup de main, ca serait sympa....

ps : un peu de tolérance pour les débutants :zen: merci !!!
 
Bienvenue sur Mac!


Déjà, commence par créer un projet de type Standard Tool sous xCode. Ensuite, (tu vires main.c et) tu y glisses tes fichiers
Enfin, tu nous donnes exactement les messages d'erreurs et nous pourrons t'aider!

Y'a pas de raison que ça marche pas, les bibliothèques standard sont standard et ça devrait compiler sur ton Mac sans soucis.
 
Bonjour

Les fichiers d'entête pour la compilation d'applis "de base" en C se trouvent dans :
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/

C'est le dossier utilisé par défaut quand on compile avec gcc. On y trouve bien math.h, et ça ne devrait pas te poser de problème, à moins que tu aies mis (ou gardé ?) des options de compilation particulières qui iraient chercher ce fichier ailleurs.

Après l'installation de XCode, tout doit se trouver en place pour une compilation correcte de programmes C standards.

L'autre possibilité, c'est que tu utilises des fonctions ou des déclarations "à la sauce" Microsoft (qui comme chacun le sait, ne veut jamais faire comme tout le monde - c'est une manière de garder ses clients...).

Par contre conio.h n'existe pas. Je crois d'ailleurs me souvenir que c'est une réminiscence de MSDOS, et que ce fichier n'a normalement pas sa place dans des compilations standards (il me semble même que c'est écrit dans les docs de Microsoft).

Quant au scanf, il est déclaré tout bonnement dans stdio.h, ce qui ne devrait pas poser de problème si les chemin par défaut vers les fichiers d'entête sont corrects.


Les compilations peuvent être lancées sous Terminal (la console) avec la commande gcc, ou bien dans l'EDI de XCode en créant par exemple un projet "Command Line Utility">"Standard tool".
 
bon avec vos conseils, j'ai réussi a créer un nouvier fichier c
j'ai viré le conio.h
mais...


.... j'ai toujours une erreur
le code
# include <stdio.h>
# include <math.h>


void main ()

{
float R,V,h;
printf("entrer R\n");
scanf("%f",&R);
printf("entrer h\n");
scanf("%f",&h);
V = 3.14*R*R*h;
printf("le volume du cylindre est :%f\n",V);
getch();
}

l'erreur apparait sur le float !

exo1.c:17: warning: return type of 'main' is not 'int'
dans le déboggeur

mon erreur ne vient peut être pas de xcode je pense mais bon on sait jamais....
 
Il faudrait avoir :
Bloc de code:
# include <stdio.h>
# include <math.h>


[B][COLOR="DarkRed"]int[/COLOR][/B] main ()
{ 
float R,V,h;
printf("entrer R\n");
scanf("%f",&R);
printf("entrer h\n");
scanf("%f",&h);
V = 3.14*R*R*h;
printf("le volume du cylindre est :%f\n",V);
[B][COLOR="DarkRed"]getchar();
return 0;[/COLOR][/B]
}

D'apr&#232;s sa d&#233;finition, main() doit retourner un int .

De plus getch() n'existe pas, la fonction standard &#233;tant getchar() .

Attention en tapant les chiffres. Sur Mac, bien que le s&#233;parateur d&#233;cimal fran&#231;ais soit la virgule, scanf() attend toujours un point.

J'ai test&#233;, &#231;a compile et &#231;a tourne.
 
merci PASCAL....

j'ai effectivement testé ca marche nickel ....:up:

j'ai viré le main initial et remis mon code en main.c et ca tourne....
 
Bloc de code:
#include <stdio.h>
#include <math.h>

[B][COLOR=DarkRed]int[/COLOR][/B] main (void)
{ 
  float R,V,h;
   printf("entrer R\n");
   scanf("%f",&R);
   printf("entrer h\n");
   scanf("%f",&h);
   V = 3.14*R*R*h;
   printf("le volume du cylindre est :%f\n",V);
  [B][COLOR=DarkRed]getchar();
[/COLOR][/B]  [B][COLOR=DarkRed] return 0;[/COLOR][/B]
}

:D ANSI

sinon

gcc main.c -o main

&#231;a devrait le faire

petit commentaire
sur darwin/OSX tu ne dois pas Faire des liens explicites sur la libmath
en effet tout ceci est g&#233;r&#233; avec la LibSystem (
que tu n'as pas besoin de d&#233;finir en liens non plus
ld le linker static le fait pour toi
)

fin d'une petite particularit&#233;
ce titre de discussion :love: &#231;a pourrait &#234;tre le titre d'un tube de l'&#233;t&#233; :p:D

premier couplet
pourquoi quand j'ouvre deux projets avec des settings diff&#233;rents
je me retrouve parfois avec les m^me settings
enregistr&#233;s dans mes deux projets
merci merci merci la pomme de
m'avoir donn&#233; un outil qui s'amuse tout seul
merci merci merci la pomme
merci merci merci la pomme
merci merci merci la pomme
pour ton software compl&#232;tement bog&#233;e

merci merci merci la pomme
merci merci merci la pomme
:D
merci merci merci la pomme