Menu
Coddy logo textTech

C++ のビルドとコンパイル

CoddyのC++ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 2/104。

C++のビルドは、プリプロセス、コンパイル、リンクの3つの段階で行われます。

1. プリプロセッシング#include ディレクティブが解決され、ヘッダーの内容がソースファイルにコピーされます

#include <iostream>    // システムヘッダー
#include "my_file.h"   // 自作のヘッダー

2. コンパイル — 各 .cpp ファイルは独立してオブジェクトファイル(.o)にコンパイルされます

// math_utils.cpp は math_utils.o にコンパイルされます
// main.cpp は main.o にコンパイルされます

3. リンキング — オブジェクトファイルが結合され、最終的な実行ファイルになります

// math_utils.o + main.o → program.exe

ヘッダーファイルは何が存在するか(プロトタイプ)を宣言します。.cpp ファイルは実際の定義(実装)を提供します。リンカーは main.cpp 内の呼び出しを他の .cpp ファイル内の実装に接続します。

challenge icon

チャレンジ

中級

ヘッダーファイル math_utils.h は2つの関数を宣言しています。これらを math_utils.cpp で実装してください:

  • doubleValue(int x)x * 2 を返します
  • square(int x)x * x を返します

.cpp ファイルにヘッダーファイルをインクルードすることを忘れないでください。

チートシート

C++のビルドは、プリプロセスコンパイルリンクの3つのステージで行われます。

プリプロセス#include ディレクティブが解決され、ヘッダーの内容がソースファイルにコピーされます:

#include <iostream>    // システムヘッダー
#include "my_file.h"   // 自作のヘッダー

コンパイル — 各 .cpp ファイルは独立してオブジェクトファイル (.o) にコンパイルされます:

// math_utils.cpp は math_utils.o にコンパイルされます
// main.cpp は main.o にコンパイルされます

リンク — オブジェクトファイルが結合され、最終的な実行ファイルが作成されます:

// math_utils.o + main.o → program.exe

ヘッダーファイルは何が存在するか(プロトタイプ)を宣言します。.cpp ファイルは実際の定義(実装)を提供します。リンカーは main.cpp 内の呼び出しを他の .cpp ファイル内の実装に接続します。

自分で試してみよう

#include <iostream>
#include "math_utils.h"

int main() {
    int num;
    std::cin >> num;
    
    std::cout << "Double: " << doubleValue(num) << std::endl;
    std::cout << "Square: " << square(num) << std::endl;
    std::cout << "Build successful" << std::endl;
    return 0;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン