2012-05-09 9 views
1
私は(OSXで)このコマンドラインでコンパイルしようとしている

Cコンパイラのヘッダファイルが見つからない

upload-comments.c:14:20: error: mysql.h: No such file or directory

mysql.h

gcc -Wall upload-comments.c -l -o upload-comments -I/usr/local/mysql/include/ -L/usr/local/mysql/lib/ -lmysqlclient

は、それが戻ってエラーが付属しています明らかにです/usr/local/mysql/include/

なぜヘッダファイルが見つからないのですか?

ありがとうございました。

答えて

1

-I...ビットの前に、の前に必要なソースファイルを置く必要があります。

gcc -Wall 
    -I/usr/local/mysql/include/ 
    upload-comments.c 
    -l 
    -o upload-comments 
    -L/usr/local/mysql/lib/ 
    -lmysqlclient 

gccコマンドは(あなたがそれらを必要とする後のファイルは、例えば、ライブラリを一覧表示する必要があります)ライブラリそのためと両方、位置敏感です。

裸のライブラリ名指定子(実際のライブラリ名のない-l)がある理由もわかりません。それは私に問題を引き起こすかもしれないようですが、それは特定の問題が提起されていることとは無関係です。

この回答に従ってコマンドを修正した後も問題が残っている場合は、削除することができます。

+0

素晴らしい!それは彼らを見つけた。今は 'i686-apple-darwin11-llvm-gcc-4.2:-Wall:いいえのファイルやディレクトリ'と言っているだけです。なぜそれは '-Wall'を受け入れないのでしょうか? – Nick

+0

私は '-Wall'を取り出した後、-l-L/usr/local/mysql/lib/ collect2:ldが1終了ステータスを返す' ld:ライブラリが見つかりませんでした。 – Nick

+0

@Nickは '-l'と' -L'の間に空白がないので、 '-L ...'オプション全体がライブラリ名であると考えます。ところで、なぜあなたはそこに裸のライブラリ指定子( '-l')を持っていますか? – paxdiablo