GCC avertissement “incompatible déclaration implicite de la fonction intégrée ‘printf’” sous Mac OS X Snow Leopard

Après un temps très long loin de la programmation en C, j'ai décidé de l'essayer et de vous familiariser avec elle à nouveau. Je suis en train de compiler un bonjour.programme en c, mais je suis d'avoir des problèmes. Voici le code:

#include <stdio.h>
main()
{
  printf("Hello\n");
}

Et voici la sortie de gcc:

$ gcc -o hello hello.c 
hello.c:1:19: error: stdio.h: No such file or directory
hello.c: In function main’:
hello.c:4: warning: incompatible implicit declaration of built-in function printf
$

Je suis en train de travailler sur un Mac sous Snow Leopard (10.6.8) et Xcode 3.2.6.

Voici les 'gcc -v' de sortie:

$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)
$

gcc n'est pas en mesure de trouver stdio.h qui se trouve dans /Developer/SDKs/MacOSX10.6.sdk/usr/include. Vous vous demandez comment faire pour définir une variable d'environnement donc je n'ai pas de spécifier le chemin d'inclusion, sur la ligne de commande. Je reçois un autre message d'erreur quand je le spécifier sur la ligne de commande:

$ gcc -I/Developer/SDKs/MacOSX10.6.sdk/usr/include -o hello hello.c 
ld: library not found for -lcrt1.10.6.o
collect2: ld returned 1 exit status
$

Ma variable d'environnement LD_LIBRARY_PATH:

$ echo $LD_LIBRARY_PATH
/Developer/SDKs/MacOSX10.6.sdk/usr/lib
$

Toute aide est appréciée.

Grâce,
Keith

Vérifiez que /usr/include existe et contient stdio.h

OriginalL'auteur dkrice | 2011-10-26