- ベストアンサー
分割ファイルのコンパイル
$gcc Bprop.c init.c prop.c state.c head.h main.c memory.c read.c -lm -g 以上のように複数のファイルをコンパイルしたら以下のようなエラーが表示されました。 gcc: compilation of header file requested この場合は自分で作成しているヘッダファイルに問題があるのでしょうか?またヘッダファイル内では以下のヘッダを読み込んでいます。 stdio.h string.h stdlib.h math.h time.h ヒントをよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
仕事などの業務で使用するプログラミングでは、 ディレクトリ構造的に、ヘッダとCやPCのファイルは別ディレクトリに分ける事が一般的です。 それはC言語に限らずJavaやその他の言語に関してもそうです。 ヒントとしては、、、 コンパイル時には基本的にヘッダはファイル名を指定する事はないです。 ヘッダをディレクトリにまとめ、そのディレクトリを読み込ませます。 Cのファイル同士は、ファイル名を#includeしないですよね。だからコンパイル時にはファイル名を指定しないと連連づかないんです。 それに比べ、 ヘッダには#include<stdio.h>のように対象ファイル名を指定して関連付けしてある為、あとはどこにあるか指定すればいいってなわけです。
その他の回答 (2)
- tatsu99
- ベストアンサー率52% (391/751)
すべての拡張子がcのファイル(init.c ・・・ read.c)の 先頭へ #include "head.h"を記述してください。 そして、$gcc Bprop.c init.c prop.c state.c main.c memory.c read.c -lm -g のように、head.hを除いて、コンパイルを行ってください。 そうすれば、あなたが望んだ結果が得られます。
- endlessriver
- ベストアンサー率31% (218/696)
ヘッダファイル head.h をコンパイルするのは変。 head.c なのか何かのCファイルで呼ぶべきでしょう。 素人なので自信なし。
お礼
自分でも気づいてびっくりでした。確かにヘッダファイルをコンパイルって…orzありがとうございました。