さまざまなプロジェクトにリンクされているライブラリにコンパイルされたファイルの山がありますが、ほとんどのプロジェクトは比較的小さな部分しか必要としません。だから私はそれをレイヤーに分割する必要があります。
それを適切に行うには、下位層が上位層の何にも依存していないことを確認したいと思います。-Wl,--no-undefined
Linux では、ライブラリを共有してリンクに渡すだけです。しかし、動的ライブラリが明示的なエクスポートを必要とし、ソースがそのために準備されていないWindowsでそれを行う必要があります。
各レイヤーの単体テストを準備し、そのリンク中に未定義のシンボルをポップアップさせることもできます。ただし、クラスの小さなサブセットの単体テストしかありません。それらを追加しても、何かが追加されているがテストされていない場合はまだキャッチされません。
静的ライブラリが、指定された他のライブラリのセット以外のシンボルを必要としないことを確認する他の方法はありますか? Visual C++ 9.0 (2008) または MinGW のいずれかを使用できます。