C 言語のコンパイルには、ソースファイル (.c) を機械語 (.o) に変換するコンパイラと、オブジェクトファイルを実行ファイルやライブラリに結合するリンカが必要です。Linux では GCC (GNU Compiler Collection) が広く使われ、Windows では MSVC (Microsoft Visual C++) が標準的です。
このリポジトリは GCC (Linux 環境) と MSVC (Windows 環境) の両方をサポートしています。makefw/ サブモジュールのビルドテンプレートが環境に応じたコンパイラコマンドを選択します。Linux 環境 (WSL を含む) では gcc・g++・ar コマンドを使用し、Windows 環境では cl.exe・link.exe・lib.exe を使用します。
コンパイラのオプション (デバッグ情報・最適化・警告設定) とリンカのオプション (ライブラリパス・ライブラリ名) を理解することで、ビルドエラーの原因特定と Makefile のカスタマイズができるようになります。
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 ...