2011-10-26 7 views
3

Cのプログラミングから非常に長い時間が経過した後、もう一度やり直すことにしました。 hello.cプログラムをコンパイルしようとしていますが、問題があります。ここでは、コードです:GCC警告「Mac OS X Snow Leopardの組み込み関数printf」の暗黙の宣言がありません

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

そしてここでは、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’ 
$ 

私はMacの実行中のSnow Leopard(10.6.8)とXcode 3.2.6に取り組んでいます。ここで

は 'gccの-v' 出力です:

$ 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が/Developer/SDKs/MacOSX10.6.sdk/usr/includeに位置していますstdio.hのを見つけることができません。環境変数を設定する方法について知りたいので、コマンドラインにインクルードパスを指定する必要はありません。

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

私のLD_LIBRARY_PATH環境変数は次のとおりです:

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

すべてのヘルプは高く評価され、私は、コマンドライン上で指定したとき、私は別のエラーを取得します。

おかげで、 キース

+0

'/ usr/include'が存在し、' stdio.h'を含んでいることを確認してください。 – JeremyP

答えて

3

あなたはXcodeのインストーラを再実行してUNIX Developmentのオプションをチェックする必要があります:

enter image description here

このオプションを指定しない場合は、あなたがまだのXcodeを使用することができますしていますが取得することはありませんgccのコマンドラインビルドの場合は/usr/includeなど。

+0

これはうまくいきました!私はXcodeをインストールしたときに何とかそのオプションを見逃しているに違いありません。愚かな私... – dkrice

3

あなたはすでにあなたの特定の問題に対する回答がありますが、別の理由でOS Xでこの問題が発生しているので、これは他の人に役立つかもしれません。

カスタムコンパイル済みバージョンのGCCをインストールしようとしていて、/ usr/local/binにあるか、/ opt/swなどにPATHエントリを追加した場合、このエラーが発生する可能性があります。

可能なカスタムGCCを持つ理由が、ノーヘッダは以下のとおりです。

  • カスタムコンパイルバージョンを削除しようとしましたが、gccのバイナリを削除するのを忘れました。
  • カスタムGCCを構築するときに間違った設定オプションを使用しました。
  • ヘッダーファイルを間違ったディレクトリにインストールしました。 (最後のオプションに非常に似ています)
関連する問題