• ベストアンサー

Linux におけるコンパイル について

みなさんは、Linuxにおいて、C言語をコンパイルするときはどのようにしていますか? 超初心者的な質問ですみません。わからないのです。 ちなみに、Red Hatの7.1 を使っています。 できれば、一番簡単なHello World!プログラムを使って説明していただけないでしょうか。 makeコマンド?の意味もわからないので、できればわかりやすく、説明してください。 いろいろと、すみません。 どうか、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

natural> Hello World!の様な小さなプログラムであればgcc単体で行った方が簡単です。 これは、大きな誤解なんだなあ。例えば、 % gcc -o sample sample.c に相当することを make を使ってやるのだったら % make sample で良いんですね。Makefile というファイルを作らなくても良いんです。 make は、元になるファイルから何かのコマンド(複数でも良い)を実行して、 あるファイルを作成するということを、なるべく楽に出来るように作られている コマンドです。 元のファイル→出来上がるファイルの関係がありますから、もし、元のファイルが 出来上がるファイルよりも新しければ、もう一度「作る」ってことをしなくては いけない、ということをなるべく機械的に実行できます。 ちょっと複雑になると、元になるファイルが複数あるとか、C言語の include の ように、元になるファイルがあるファイルの記述を参照しているとか、そういった 関係も出てくるので、そのファイルの関係や、実行するコマンドやパラメータを Makefile というファイルに記述して make に教えてあげることができます。 どんなファイルでも良いようになっているのですが、よくある場面として、 ソースファイルから実行プログラムを作る、というのがあるので、そのうち メジャーな言語については「デフォルトの推論規則」っていうのがあって、 決まったパターンであれば、Makefile さえ作る必要がありません。 例えば、C言語だったら sample.c というソースを作れば、sample という 実行プログラムを作るのがデフォルトの推論規則として、既に make が持って います。

tomatosuki
質問者

お礼

なるほど、よくわかりました。 どうも、ご親切にありがとうございました

その他の回答 (2)

  • mph
  • ベストアンサー率54% (39/72)
回答No.3

makeコマンドの存在をしっているのであればまずman makeとかman gccとかするべきでしょう。 manにはmake.texinfoを見よと書いてあると思うのでmakeのソースを入手してinfo形式もしくはdvi形式のファイルを作れば詳しいことがわかります。(ただし、英語) ソースの入手方法やtexinfo形式ファイルの処理方法は別途勉強してください。 もし、英語では読みこなせないばあいは書籍をさがすしかないかな。

tomatosuki
質問者

お礼

なるほど、よくわかりました。 どうも、ご親切にありがとうございました

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

コマンドラインでgccを使用してコンパイルします。 # gcc -o sample sample.c (#はプロンプト) といった感じでしょうか。 "-o sample"は実行ファイル名をsampleという名前にするように指定しています。 これを付けないとa.outという名前の実行ファイルになってしまいます。 尚、makeはMakefileの記述を解釈・実行するコマンドで、Makefileにはコンパイル・リンクの手順を記述しておきます。 Hello World!の様な小さなプログラムであればgcc単体で行った方が簡単です。 makeに関しては参考URLをご覧下さい。 #RedHatにはgccが標準で入っているはずですが、見つからない場合はfind #コマンド等で探し、pathを通して再実行してください。 #それでも見つからない場合はインストールディスクの何処か、または #ネット上から探してくることになります。

参考URL:
http://tanaka-www.cs.titech.ac.jp/~euske/doc/make_qref.html
tomatosuki
質問者

お礼

なるほど、よくわかりました。 どうも、ご親切にありがとうございました。

関連するQ&A