C/C++の実行プログラムはバイナリ・ファイルですから,テキスト・エディタで編集できるソースコードとの間には大きなギャップがあります。特に予期せぬエラーが発生するとそのギャップは問題解決の大きな障害になります。両者のギャップを埋めることで,C/C++のコンパイル~リンク~ロードの様子を探検してみましょう*1。 プログラミングで誰もがお世話になるソフトウエアと言えば,コンパイラかインタプリタであろう。 正確な表現ではないが,コンパイラはソースコードから実行ファイルを生成し,インタプリタはソースコードをそのまま実行してくれる。その機能さえ知っていれば,両者をブラックボックスとして扱ってもプログラムは作成できる。実際,難しいことを知らなくてもプログラミングできるようにブラックボックス化が進んできたのが,現在の開発ツールであり開発環境だ。 20年前なら,ただコンパイルを実行するだけでも,複雑なコマ