Hello Worldとビルドプロセス
Hello Worldを記述し、前処理、コンパイル、アセンブリ、リンクの各段階を理解します。
「Hello Worldとビルドプロセス」はCoddyKit上の無料C++ Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC++ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C++ Academyコースには全4レッスンが含まれています。
最も簡単なC++プログラム
すべてのC++プログラムはmain()から始まります。ランタイムは最初にmainを呼び出し、mainが戻ると終了します。
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}#includeの役割
#includeディレクティブは、コンパイル前にプリプロセッサによって処理されます。ヘッダーの内容をソースファイルにテキストとして貼り付けます。
std名前空間
標準ライブラリの名前はstd名前空間に属します。std::coutのように、std::を前に付けて使用します。ヘッダーではusing namespace std;を避けてください。グローバル名前空間が汚染されるためです。
ストリーム挿入 <<
<<演算子は、データを出力ストリームに挿入します。これを連結して、1つの式で複数の値を出力できます。
std::cout << "Name: " << name << ", Age: " << age << "\n";endlと\nの比較
どちらも行を終了します。std::endlはバッファもフラッシュするため、タイトなループでは遅くなります。通常は"\n"を使用してください。
ビルドプロセス:4つの段階
C++プログラムのビルドは、次の4段階で行われます。
- プリプロセス— インクルードとマクロを展開する
- コンパイル— ソースコードをアセンブリコードに変換する
- アセンブル— アセンブリコードをオブジェクトコードに変換する
- リンク— オブジェクトファイルを結合して最終的な実行ファイルを作成する
Hello Worldのコンパイル
ターミナルでファイルをhello.cppとして保存し、g++を実行します。デフォルトの出力名はa.outです。-oを使えば、任意の名前を指定できます。
g++ -std=c++20 hello.cpp -o hello
./hello各段階の確認
フラグを使うと、任意の段階で処理を止められます。
-E— プリプロセスのみ-S— アセンブリコードまでコンパイル-c— コンパイルとアセンブルを行うが、リンクは行わない
オブジェクトファイルとリンク
各翻訳単位(.cppファイル)はオブジェクトファイル(.oまたは.obj)になります。リンカーはオブジェクトファイルを結合し、外部参照を解決して実行ファイルを生成します。
ヘッダーファイルの役割
ヘッダー(.hまたは.hpp)では、関数とクラスを宣言します。ソースファイル(.cpp)では、それらを定義します。ヘッダーをインクルードすると、宣言が翻訳単位に取り込まれます。
最初によくあるエラー
プログラムをコンパイルできない場合は、次を確認してください。
- 文の末尾にセミコロンがない
#include <iostream>を記述し忘れている{と}の対応が合っていない- 大文字と小文字が間違っている — C++では大文字と小文字を区別します
確認問題
オブジェクトファイルを結合して最終的な実行ファイルを作成するビルド段階はどれですか。
まとめ
すべてのC++プログラムにはmain()関数があります。コンパイラは、プリプロセス、コンパイル、アセンブル、リンクの段階を実行します。std::coutと<<を使って出力し、std::endlよりも"\n"を優先してください。
よくある質問
「Hello Worldとビルドプロセス」レッスンは無料ですか?
はい。「Hello Worldとビルドプロセス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C++ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C++ Academyコースには全4レッスンが含まれています。
「Hello Worldとビルドプロセス」で何を学びますか?
Hello Worldを記述し、前処理、コンパイル、アセンブリ、リンクの各段階を理解します。 ブラウザで直接実行するハンズオンコードでC++ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C++ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC++ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Hello Worldとビルドプロセス」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC++ Academyレッスンでコードを書いて実行できますか?
はい。すべてのC++ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- C++コンパイラーのセットアップ
- Hello Worldとビルドプロセス
- 変数、自動型推論、constexpr
- 基本演算子と型変換