- ベストアンサー
Linux におけるコンパイル について
みなさんは、Linuxにおいて、C言語をコンパイルするときはどのようにしていますか? 超初心者的な質問ですみません。わからないのです。 ちなみに、Red Hatの7.1 を使っています。 できれば、一番簡単なHello World!プログラムを使って説明していただけないでしょうか。 makeコマンド?の意味もわからないので、できればわかりやすく、説明してください。 いろいろと、すみません。 どうか、お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
natural> Hello World!の様な小さなプログラムであればgcc単体で行った方が簡単です。 これは、大きな誤解なんだなあ。例えば、 % gcc -o sample sample.c に相当することを make を使ってやるのだったら % make sample で良いんですね。Makefile というファイルを作らなくても良いんです。 make は、元になるファイルから何かのコマンド(複数でも良い)を実行して、 あるファイルを作成するということを、なるべく楽に出来るように作られている コマンドです。 元のファイル→出来上がるファイルの関係がありますから、もし、元のファイルが 出来上がるファイルよりも新しければ、もう一度「作る」ってことをしなくては いけない、ということをなるべく機械的に実行できます。 ちょっと複雑になると、元になるファイルが複数あるとか、C言語の include の ように、元になるファイルがあるファイルの記述を参照しているとか、そういった 関係も出てくるので、そのファイルの関係や、実行するコマンドやパラメータを Makefile というファイルに記述して make に教えてあげることができます。 どんなファイルでも良いようになっているのですが、よくある場面として、 ソースファイルから実行プログラムを作る、というのがあるので、そのうち メジャーな言語については「デフォルトの推論規則」っていうのがあって、 決まったパターンであれば、Makefile さえ作る必要がありません。 例えば、C言語だったら sample.c というソースを作れば、sample という 実行プログラムを作るのがデフォルトの推論規則として、既に make が持って います。
その他の回答 (2)
- mph
- ベストアンサー率54% (39/72)
makeコマンドの存在をしっているのであればまずman makeとかman gccとかするべきでしょう。 manにはmake.texinfoを見よと書いてあると思うのでmakeのソースを入手してinfo形式もしくはdvi形式のファイルを作れば詳しいことがわかります。(ただし、英語) ソースの入手方法やtexinfo形式ファイルの処理方法は別途勉強してください。 もし、英語では読みこなせないばあいは書籍をさがすしかないかな。
お礼
なるほど、よくわかりました。 どうも、ご親切にありがとうございました
- natural
- ベストアンサー率37% (419/1115)
コマンドラインでgccを使用してコンパイルします。 # gcc -o sample sample.c (#はプロンプト) といった感じでしょうか。 "-o sample"は実行ファイル名をsampleという名前にするように指定しています。 これを付けないとa.outという名前の実行ファイルになってしまいます。 尚、makeはMakefileの記述を解釈・実行するコマンドで、Makefileにはコンパイル・リンクの手順を記述しておきます。 Hello World!の様な小さなプログラムであればgcc単体で行った方が簡単です。 makeに関しては参考URLをご覧下さい。 #RedHatにはgccが標準で入っているはずですが、見つからない場合はfind #コマンド等で探し、pathを通して再実行してください。 #それでも見つからない場合はインストールディスクの何処か、または #ネット上から探してくることになります。
お礼
なるほど、よくわかりました。 どうも、ご親切にありがとうございました。
お礼
なるほど、よくわかりました。 どうも、ご親切にありがとうございました