C/C++コンパイラについて
機械語(オブジェクト)
(*.o)
アセンブラ(*.a)
C言語(*.c)
C++言語(*.cpp
C++のソースコードはプリプ
ロセッサによりいったんC
語に変換される
(次ページ参照)ハードウェア
実行
(*.exe)
C/C++言語ヘッダー(*.h)
stdio.h / iostreamなど
次ペー
参照
プリプロセッサとリンカについて
#で始まる行は,プリプロセッサ命令という。C言語のソースプログラ
ムはコンパイラによってCPUが実行できる機械語に変換される(“
ンパイルされる”,“翻訳される”などとも言う)。実はこのコンパイル
作業に先立ち,プリプロセッサ(preprocessor)というプログラム(また
はコンパイラに組み込みの機能)によって,ソースプログラムが加工
される。出展
http://www.ohshiro.tuis.ac.jp/~ohshiro/gamesoft/pp/pp01.html
機械語プログラムの断片を結合し実行可
能なプログラムを作成するプログラムのこと
である。例として、C言語では、ースファイ
をコンパイルするとオブジェクトファイル
生成される。それに他のオブジェクトファイル
ライブラリを結合して1つのプログラムが完
成する。この結合(リンク)の際リンケージエ
ディタが使われる。
出展:
https://ja.wikipedia.org/wiki/%E3%83%AA%E3
%83%B3%E3%82%B1%E3%83%BC%E3%82%B8%E
3%82%A8%E3%83%87%E3%82%A3%E3%82%BF
C++ プログラムの "
ビルド
" とは、1 つ以上のファイルからソース コードをコンパイルし、それらの
ファイルを実行可能ファイル (.exe)、動的読み込みライブラリ (.dll)、またはスタティック ライブラ
(.lib) にリンクすることを意味します。
C++ の基本的なコンパイルには、次の 3 つの主要な手順が含まれます。
C++ プリプロセッサによって、各ソー ファイル内のすべての # ディレクティブとマクロの定義が
変換されます。 れにより、"
翻訳単位
" が作成されます。
C++ コンパイラによって、各翻訳単位がオブジェク ファイル (.obj) にコンパイルされます。設定
されているすべてのコンパイラ オプションが適用されます。
リンカー
” によって、オブジェクト ファイルが単一の実行可能ファイルにマージされます。設定さ
れているリンカー オプションが適用されます。出展
https://learn.microsoft.com/ja-jp/cpp/build/projects-and-build-systems-cpp?view=msvc-170
IDE Integrated
Development Environment
統合開発環境
#define
#elif
#else
#endif
#error
#if
#ifdef
#ifndef
#import
#include
#line
#pragma
#undef
#using
プリプロセッサ命令 ※とりあえす赤字は覚える
詳細は以下を参照 (Microsoft Learnプリプロセッサ ディレクティブ)
https://learn.microsoft.com/ja-jp/cpp/preprocessor/preprocessor-directives?view=msvc-160