質問: コンパイルしたいのですが上手くいきません。できれば詳しめに解説をお願いします。 ![プログラミング](https://i.stack.imgur.com/bW2WI.jpg) プログラム ``` #include "pseudo97.h" typedef struct PERSON* PtrPERSON; struct PERSON { char name[20]; long year; PtrPERSON next; }; int MakeLinkedList( PtrPERSON head) { PtrPERSON girl; New(girl); InputString( girl->name); InputInt(girl->year); while(girl->year >0){ girl->next=head->next;head->next=girl; New(PtrPERSON , girl); InputString(girl->name); InputInt(girl->year); } return 0; } int main(void) { PtrPERSON head; New(PtrPERSON,head); head->next=NVLL; MakeLinkedList(head); // WriteLinkedList( head ); return 0; } ``` コマンドの結果です。 ![コマンドの結果です。](https://i.stack.imgur.com/cMIYu.jpg)
回答: まずエラーの内容を説明し、そのあとエラーの原因を推測した上で、解決法を書きます。 ### エラー内容 gcc コマンドのエラー内容だけを取り出すと、以下のようになります。 ``` print1.c:1:22: fatal error: pseudo97.h: No such file or directory ``` このエラーは、おおまかに以下のことを言っています。 * ファイル `print1.c` でエラーが起こっている。 * `pseudo97.h` が必要とされているが、そのような名前のファイルやディレクトリは見つからない。 つまり、`print1.c` の1行目で `#include` されているヘッダーファイル `pseudo97.h` が見つからない、というエラーです。 ### エラーの原因 C 言語の標準ライブラリには `pseudo97.h` というヘッダーはないので、これは自前で用意されたヘッダーファイルです。おそらく書籍等で C 言語を学習なさっていて、そちらから提供されているヘッダーファイルを上手く準備できていないのでしょう。 また質問者さんは1行目を `#include "pseudo97.h"` から `#include ` に変えて試されているようです。たしかに `#include` のあとを `"ぴよぴよ"` にするか `<ぴよぴよ>` にするかでは、意味が違います。今回の場合は `#include "pseudo97.h"` にすることになるでしょう。 ### 解決法 参考になさっている書籍等を確認して、`pseudo97.h` というファイルが提供されていないか確認してください。 今回は質問者さんのデスクトップ (`C:\Users\babachan\Desktop`) 上で作業なさっているようですから、とりあえず `pseudo97.h` をデスクトップに置けば、gcc が `pseudo97.h` を見つけてくれるようになるので、このエラーは解決します。 `No such file or directory` はでなくなったものの他のエラーが出た場合、追加でご質問頂ければと思います。