プロが教える店舗&オフィスのセキュリティ対策術

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作成初心者なのでご教授お願いいたします。

A 回答 (3件)

これは


main.cからmain2.oというオブジェクトファイルを作りなさい。
hello.cからhello2.oというオブジェクトファイルを作りなさい。
main2.oとhello2.oをリンクしてtest2という実行ファイルを作りなさい
って事です。
多分、main.cにはmain()関数があり
hello.cには別ファイルとしてmain.c内のソースから呼び出している
外部関数が有ると思います。
それをリンクするのに一端オブジェクトファイルを
つくりその後リンクして一つの実行ファイルにしているのです。
    • good
    • 3
この回答へのお礼

リンクする為にオブジェクトファイルに変換しなくてはならないのですね。機械語に変換した後にリンクさせるという仕組みを理解できたので本当に感謝いたします。
ご回答ありがとうございました。

お礼日時:2006/04/03 01:35

リロケータブル・オブジェクトファイルあるいは単にオブジェクトファイル、のことです。

Windowsなんかだと、 .oではなくて .objという拡張をを使ったりします。

なお、現代のMakeでは .cから.oを得る手順はもともと入っているので、いちいちmakefileに書かなくて良いと思いますよ。
    • good
    • 1
この回答へのお礼

>なお、現代のMakeでは .cから.oを得る手順はもともと入っているので、いちいちmakefileに書かなくて良いと思いますよ。

Makefileについて一応理解できてきたのでご回答いただいた仕組みについて勉強したいと思います。
ご回答ありがとうございました。

お礼日時:2006/04/03 01:33

オブジェクトファイルの事。



コンパイルという作業で機械語に変換をしますが、一旦オブジェクトファイルという形式にします。この後に実行用ライブラリを結合(リンク)して実行可能形式(exeやcom等)にします。

参考URL:http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manua …
    • good
    • 0
この回答へのお礼

意味が理解できました。どうもありがとうございます。機械語に変換したというオブジェクトファイルのことなのですね。ご回答ありがとうございます。

お礼日時:2006/04/03 01:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています