tu_demo — 翻訳単位・ヘッダー・リンクの実験場¶
docs/06_cpp_internals/02〜04 と docs/08_build_system の演習用マルチファイル構成。
ビルド(手動: 各段階を体験する)¶
g++ -std=c++2a -Wall -Wextra -c enemy.cpp -o enemy.o
g++ -std=c++2a -Wall -Wextra -c radar.cpp -o radar.o
g++ -std=c++2a -Wall -Wextra -c main.cpp -o main.o
g++ main.o enemy.o radar.o -o tu_demo.exe
./tu_demo.exe
実験メニュー¶
nm enemy.oでシンボル表を見る(提供=T、要求=U)。c++filtで修飾名を復元- enemy.cpp をリンク対象から外す → 未解決外部シンボルの再現
- enemy.h の
Description()からinlineを外す → 多重定義の再現 - radar.h の
#include "enemy.h"を前方宣言に置き換える実験(現状は前方宣言版) ar rcs libenemy.a enemy.o→g++ main.o radar.o -L. -lenemyで静的ライブラリ体験