静的ライブラリlibgtest.aをビルドして使います。
実行環境
- Mac OSX version10.7.1
- XCode version4.1
- gcc version4.2.1
- googletest version1.6.0
テンプレート関数をヘッダとソースに分割してコンパイルする方法です。
通常、テンプレート関数はヘッダとソースを同じファイルに書きます。分割して書くには、二つの方法があります。
ヘッダファイル内でソースファイルをインクルードします。
参照が循環してしまうので、ソースにもインクルードガード(ifndef〜)を書きます。
ただし、このようにすると、これを利用する側で常にヘッダとソース両方が必要になってしまいます。
例えばこの方法でビルドしたライブラリをつくります。 そのライブラリを使うクライアント側に、ヘッダだけでなくソースファイルも渡してあげないとインクルードエラーがでます。
ソースの最後に個別にクラス指定した関数を書きます。
こちらの場合は1番のようにソースが常に必要となる問題はありません。
しかし、ソースの最後に使う全てのクラスでの組合せを書かないといけないので、ちょっと大変です。上の例ではintとdoubleしか書いていませんが、floatなど必要なものは全て書く必要があります。
1番の方法はこちらを参考にしました。
2番の方法はこちらを参考にしました。
プロジェクトにターゲットを追加する方法です。2つやり方があります。