未だにVisual C++ 6って、という話は置いておいて(保守メンテがあるんだよ)
Google TestはVC6をサポートしていない。が、公式で非サポートだぞ!と念を押して公開している。それを入手して使うまでのメモ。
VC6用のブランチからソースを入手する(Subversionで)
VC6でコンパイルする準備(*.ccを対象にする)
VC6用のgoogle testのソースコードを入手する為に必要。
本家のサイトで、Windows向けのパッケージリンクがあるので好きなのを入れる。
Apache Subversion Binary Packages http://subversion.apache.org/packages.html#windows
なんとなくwin32svnをインストール。ダウンロード後、実行してアパッチの種類を選ぶだけ(どちらでも良いと思う)
Subversion for Windows http://sourceforge.net/projects/win32svn/
\> svn checkout http://googletest.googlecode.com/svn/branches/unsupported-vc6-port/
すると、\unsupported-vc6-port\へリポジトリがダウンロードされる。
3. VC6でコンパイルする準備(*.ccを対象にする)
google test のソースコードはcc拡張子を使っている。VC6ではcc拡張子を対象としていないので、そのままではコンパイルされない。のでccを対象として登録する。
2009-03-03 VC6で拡張子が*.ccなファイルをC++ソースとして扱わせる http://d.hatena.ne.jp/kyab/20090303
[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Tools\32-bit C/C++ Compiler for 80x86] にあるInputSpecに*.ccを追加してやる。
[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Text Editor\Tabs/Language Settings\C/C++]にあるFileExtensionにccを追加してやる。
ダウンロードした\unsupported-vc6-port\msvc6\gtest.dswを開いて、バッチビルドで全部ビルドする。
成功すればgtest.lib, gtestd.libがRelease/Debugフォルダにそれぞれ生成されているハズ。
既存プロジェクトをVC6で開き、メニューのプロジェクト>プロジェクトへ追加>新規作成 で プロジェクト/Win32 Console Application を追加する。
メニューのプロジェクト>設定 で下記の設定をする。
C/C++>カテゴリ:プリプロセッサ>インクルードファイルのパス <VC6用のgtestがあるフォルダ>\include リンク>カテゴリ:一般>オブジェクト/ライブラリ モジュール gtest.lib (リリースモードの場合) gtestd.lib (デバッグモードの場合) を追加する。 リンク>カテゴリ:インプット>追加ライブラリのパス <VC用のgtestがあるフォルダ>\msvc6/release (リリースモードの場合) <VC用のgtestがあるフォルダ>\msvc6/deubg (デバッグモードの場合) (これは場合によると思うが、自分はエラーが出たので除外した) リンク>カテゴリ:インプット>無視するライブラリ libcmtd.lib
#include <stdio.h> #include <gtest/gtest.h> TEST(hoge, 1) { EXPECT_EQ(1, 1) << "Hi from " __FILE__; } int main(int argc, char *argv[]) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
これでビルド後、実行するとコンソールでgtestが実施される。
Google TestをVC6に移植する・・・のは難しいみたい
http://blog.systemjp.net/entry/20091207/p2