GCC / MSVC ツールチェイン

1 概要

C 言語のコンパイルには、ソースファイル (.c) を機械語 (.o) に変換するコンパイラと、オブジェクトファイルを実行ファイルやライブラリに結合するリンカが必要です。Linux では GCC (GNU Compiler Collection) が広く使われ、Windows では MSVC (Microsoft Visual C++) が標準的です。

このリポジトリは GCC (Linux 環境) と MSVC (Windows 環境) の両方をサポートしています。makefw/ サブモジュールのビルドテンプレートが環境に応じたコンパイラコマンドを選択します。Linux 環境 (WSL を含む) では gccg++ar コマンドを使用し、Windows 環境では cl.exelink.exelib.exe を使用します。

コンパイラのオプション (デバッグ情報・最適化・警告設定) とリンカのオプション (ライブラリパス・ライブラリ名) を理解することで、ビルドエラーの原因特定と Makefile のカスタマイズができるようになります。

2 習得目標

2.1 GCC (Linux)

2.2 MSVC (Windows)

3 学習マテリアル

3.1 公式ドキュメント

3.2 チュートリアル・入門

4 このリポジトリとの関連

4.1 使用箇所 (具体的なファイル・コマンド)

Linux (GCC) での代表的なビルドコマンド:

gcc -c -Wall -Wextra -g -fPIC \
    -I prod/calc/include \
    prod/calc/libsrc/calcbase/add.c \
    -o add.o

ar rcs prod/calc/lib/libcalcbase.a add.o subtract.o multiply.o divide.o

gcc -shared -fPIC \
    -o prod/calc/lib/libcalc.so \
    calcHandler.o

gcc -o prod/calc/bin/add \
    prod/calc/src/add/add.o \
    -L prod/calc/lib -lcalcbase

gcc -o prod/calc/bin/calc \
    prod/calc/src/calc/calc.o \
    -L prod/calc/lib -lcalc \
    -Wl,-rpath,'$$ORIGIN/../lib'

カバレッジ計測用のコンパイルオプション (testfw/ で使用):

gcc -c --coverage -fprofile-arcs -ftest-coverage ...

4.2 関連ドキュメント