gcc : erreur à la compilation

A

Anonyme

Invité
Ca fait un moment que je cherche sans trouver d'explication alors je crée un topic.

Etant un débutant en prog sous mac (j'ai switché il y a deux/trois mois), je commence facile avec un "hello world", histoire de vérifier que le minimum marche. A la compil, gcc me dit qu'il ne connait pas le fichier stdio.h. J'ai donc un problème avec les librairies, mais je ne sais pas comment le régler...
Des idées ?

Quelques précisions :
- je ne veux pas utiliser Xcode parce qu'un fichier ouvert sous smultron et le terminal me suffisent amplement (je fais du dev pas vraiment violent, c'est pour les cours), mais j'ai tout de même testé et le résultat est le même.
- le résultat est également le même avec gcc 3.3 et gcc 4.0 (d'ailleurs pouquoi les deux sont présents sur le dvd d'install de tiger ?)

Merci d'avance. ;)
 
Comme ça ne doit pas être énorme, tu peux faire un copier/coller de ton code ici ? il y aurait peut-être une erreur de transcription ?
 
Je veux bien mais ça reste un "hello world" :
Bloc de code:
#include <stdio.h>

int main()
{
	printf("hello world");
	return 0;
}
Et l'erreur exacte est : main.c:1:19: stdio.h: No such file or directory

J'utilisais déjà gcc sous linux, mais je n'ai jamais eu le problème et j'avoue que je ne m'y connais pas des masses. Je suis en train de regarder la doc de gcc pour trouver quelque chose sur la gestion des header...
 
Et il n'y est pas. :(
Mauvaise install de gcc ?

Dans /usr/include, je n'ai qu'un dossier gcc. Si je continue à descendre l'arbo, je trouve des fichiers header ici : /usr/include/gcc/darwin/version/ où version est 3.3 , 4.0 , ou 3.3-fast (qui est un alias vers 3.3).
 
Oui cela n'est pas énorme. Réessayes de réinstaller les outils de développement. Sinon je sais que certains
ont déjà eu un problème simillaire avec les pages man qui manquaient mais il faudrait que je retrouve si
une réinstallation a suffit ou si ils ont du faire autre chose...
 
Oui essayes de tout réinstaller depuis le CD d'installation OS X, je crois que c'est le dossier XCode... installe tout même si pour le moment tu n'utilises que gcc.
 
space monkey a dit:
Je veux bien mais ça reste un "hello world" :
Bloc de code:
#include <stdio.h>

int main()
{
	printf("hello world");
	return 0;
}
Et l'erreur exacte est : main.c:1:19: stdio.h: No such file or directory

J'utilisais déjà gcc sous linux, mais je n'ai jamais eu le problème et j'avoue que je ne m'y connais pas des masses. Je suis en train de regarder la doc de gcc pour trouver quelque chose sur la gestion des header...

/usr/include est ascent :)

je te conseille comme tout le monde :)
de réinstaller ton cd d'Xcode qui contient les headers system make libtool ar ...
tiens je te donne un autre exercice :)

Bloc de code:
//######################## libsimplemath.c 

#include <stdio.h>
#include <stdlib.h>

int simple_add( int x, int y )
{
	return x + y;
}

int simple_divide( int x, int y )
{
	return x / y;
}

int simple_multiply( int x, int y )
{
	return x * y;
}

int simple_subtract(int x, int y)
{
	return x - y;
}

//######################## end libsimplemath.c 

//######################## simplemathtest.c 

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
	char *hello="Hello  ";
	
	printf("Result : (8-4)*(10+25)=%i \nHello %s \n",simple_result(),hello);

 	return 18;
}

int simple_result()
{
	int result=simple_multiply(simple_subtract(8,4),simple_add(10,25));
   
	return result;
}

//######################## end simplemathtest.c

gcc libsimplemath.c -dynamiclib -compatibility_version 1 \
-current_version 22 -install_name libsimplemath.dylib \
-lSystem -o libsimplemath.dylib

gcc simplemathtest.c -o simplemathtest -L. -lsimplemath

./simplemathtest

attention des espaces involontaires entre les simple _ add
 
Vous aviez tous raison, c'était bien un problème d'install. ;)
En fait, je n'avais pas installé tous les Xcode Tools, mais seulement les packages gcc et manifestement ça n'installe pas les headers système... Donc là, j'ai fait ça bien propre et j'ai tout installé.

Du coup, j'ai une autre question : dans quel package sont "cachés" les headers ?
Ca pourrait me servir si, pour une install future, je ne veux mettre que gcc et les header, sans même installer Xcode.
 
space monkey a dit:
Vous aviez tous raison, c'était bien un problème d'install. ;)
Du coup, j'ai une autre question : dans quel package sont "cachés" les headers ?
Ca pourrait me servir si, pour une install future, je ne veux mettre que gcc et les header, sans même installer Xcode.

D'après des infos trouvées sur le web, cela a l'air d'être dans DevSDK (mais il semble
aussi y avoir quelques headers donc ceux de perl dans BSDSDK). Enfin à vérifier.

Osnola
 
osnola a dit:
D'après des infos trouvées sur le web, cela a l'air d'être dans DevSDK (mais il semble
aussi y avoir quelques headers donc ceux de perl dans BSDSDK). Enfin à vérifier.

Osnola

ouvrer les pkg
desarchiver les .pax
et puis fouiller en général oui les headers sont dans les pkgsdk :)

mais je te conseille d'installer les xcode complet
rien ne t'empêche de détruire les parties GUI (je te conseille de garder le reste)

/Developer/ADC Reference Library
/Developer/Applications
/Developer/Documentation
/Developer/Examples
/Developer/Extras
/Developer/Palettes
/System/Library/PrivateFrameworks/DevTools*.framework

mais bon enfin tu peux avoir des applications dont tu ne te sers pas ?
fais tu un blockage psycho-rigide :)
 
Pas de blocage non. :p

D'ailleurs, ça marche donc je n'y touche plus pour l'instant. Par contre, si je refais une install un jour (oui je sais c'est un réflexe de windowsien que de dire ça :eek:) je ne mettrais peut-être pas tout. Après tout, pourquoi garder un truc dont je ne me sers pas ?
 
Tu t'y mettras lorsque tu auras découvert qu'avec XCode, Interface Builder et le couple objective-c/Cocoa on peut de choses bien plus belles qu'avec du simple C :D
 
Je m'en doute bien mais la prog c'est vraiment pas mon truc, alors je fais ce que me demandent les profs (et encore pas toujours :siffle:) et puis basta !
 
Merci pour ce topic.
J'ai moi aussi installé Xcode, mais pas en entier (pour des économies de place sur mon disque dur) et j'ai rencontré le même problème.
Je n'avais pas encore eu le temps de me pencher sur la question.