# xcode n'aime pas mon code



## koyot3 (11 Septembre 2006)

bonjour
&#233;tant habitu&#233; a travailler sous dev c avec windows
j'ai install&#233; xcode sur mon mac afin de continuer a d&#233;velopper en c

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

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

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

on m'a sugg&#233;r&#233; 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&#233;rance pour les d&#233;butants  merci !!!


----------



## Céroce (11 Septembre 2006)

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.


----------



## PA5CAL (11 Septembre 2006)

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".


----------



## koyot3 (11 Septembre 2006)

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>
> 
> 
> ...



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....


----------



## PA5CAL (11 Septembre 2006)

Il faudrait avoir :

```
# 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.


----------



## koyot3 (11 Septembre 2006)

merci PASCAL....

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

j'ai viré le main initial et remis mon code en main.c et ca tourne....


----------



## PA5CAL (11 Septembre 2006)

De rien. A ton service


----------



## tatouille (11 Septembre 2006)

```
#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]
}
```

 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; 

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

merci merci merci la pomme


----------



## p4bl0 (11 Septembre 2006)

"Tatouille fisrt single !"
Extrait de l'album "moi non plus j'aime mon mac"

:rateau:


----------



## clampin (12 Septembre 2006)

rigolez pas, votre texte m'inspire une musique


----------



## tatouille (12 Septembre 2006)

clampin a dit:


> rigolez pas, votre texte m'inspire une musique



pourquoi n'as tu pas screenshoot&#233; sur un fond blanc ?

macosforge != macforge


----------

