Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Linux 環境は初めてで、gcc を使い始めたばかりです。7 ~ 8 個の cpp ファイルを持つ小さなプロジェクトがあります。ファイルをコンパイルしようとすると、.cpp ファイルごとに .o ファイルがあるのはなぜだろうと思います。メインは1つだけ。
これがコンパイルの仕組みです。各変換ユニットはオブジェクトコード(.oファイル)に変換され、オブジェクトファイルは他のライブラリと一緒にリンクされて最終的な実行可能ファイルになります。通常、ビルドシステムはオブジェクトファイルをどこかに隠しますが、おそらく、気にしない非常に単純なビルドシステムまたはスクリプトを使用しています。
.o は、各 cpp のコンパイル時に作成されるオブジェクト ファイルです。
詳細情報なぜ最初にオブジェクト ファイルにコンパイルするのですか?