- ベストアンサー
Makefile作成時の拡張子.oとは?
main2.o: main.c gcc -o main2.o -c main.c hello2.o: hello.c gcc -o hello2.o -c hello.c test2: main2.o hello2.o gcc -o test2 main2.o hello2.o のようなMakefile作成時の拡張子.oとは何のファイルという意味なのでしょうか? Makefile作成初心者なのでご教授お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これは main.cからmain2.oというオブジェクトファイルを作りなさい。 hello.cからhello2.oというオブジェクトファイルを作りなさい。 main2.oとhello2.oをリンクしてtest2という実行ファイルを作りなさい って事です。 多分、main.cにはmain()関数があり hello.cには別ファイルとしてmain.c内のソースから呼び出している 外部関数が有ると思います。 それをリンクするのに一端オブジェクトファイルを つくりその後リンクして一つの実行ファイルにしているのです。
その他の回答 (2)
- a-saitoh
- ベストアンサー率30% (524/1722)
リロケータブル・オブジェクトファイルあるいは単にオブジェクトファイル、のことです。Windowsなんかだと、 .oではなくて .objという拡張をを使ったりします。 なお、現代のMakeでは .cから.oを得る手順はもともと入っているので、いちいちmakefileに書かなくて良いと思いますよ。
お礼
>なお、現代のMakeでは .cから.oを得る手順はもともと入っているので、いちいちmakefileに書かなくて良いと思いますよ。 Makefileについて一応理解できてきたのでご回答いただいた仕組みについて勉強したいと思います。 ご回答ありがとうございました。
- OsieteG00
- ベストアンサー率35% (777/2173)
オブジェクトファイルの事。 コンパイルという作業で機械語に変換をしますが、一旦オブジェクトファイルという形式にします。この後に実行用ライブラリを結合(リンク)して実行可能形式(exeやcom等)にします。
お礼
意味が理解できました。どうもありがとうございます。機械語に変換したというオブジェクトファイルのことなのですね。ご回答ありがとうございます。
お礼
リンクする為にオブジェクトファイルに変換しなくてはならないのですね。機械語に変換した後にリンクさせるという仕組みを理解できたので本当に感謝いたします。 ご回答ありがとうございました。