msvcrt=shared でビルドすると snapshot がとれない
C:\progs\v8\v8>scons mode=debug snapshot=on msvcrt=shared scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... ... cl /Foobj\debug\mksnapshot.obj /c src\mksnapshot.cc /nologo /W3 /WX /wd4355 /wd4 800 /Od /Gm /MDd /GR- /Gy /nologo /W3 /WX /wd4355 /wd4800 /Od /Gm /MDd /DENABLE_ LOGGING_AND_PROFILING /DWIN32 /D_USE_32BIT_TIME_T /DPCRE_STATIC /D_DEBUG /DENABL E_DISASSEMBLER /DDEBUG /Zi mksnapshot.cc C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(139) : error C222 0: 警告をエラーとして扱いました。'object' ファイルは生成されません。 C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(139) : warning C4 275: DLL インターフェイスではない class 'stdext::exception' が DLL インターフェ イスのベースになる class 'std::bad_cast' として使われています。 C:\Program Files\Microsoft Visual Studio 8\VC\include\exception(241) : ' stdext::exception' の宣言を確認してください。 C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(138) : 's td::bad_cast' の宣言を確認してください。 C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(160) : warning C4 275: DLL インターフェイスではない class 'stdext::exception' が DLL インターフェ イスのベースになる class 'std::bad_typeid' として使われています。 C:\Program Files\Microsoft Visual Studio 8\VC\include\exception(241) : ' stdext::exception' の宣言を確認してください。 C:\Program Files\Microsoft Visual Studio 8\VC\include\typeinfo(159) : 's td::bad_typeid' の宣言を確認してください。 scons: *** [obj\debug\mksnapshot.obj] Error 2 scons: building terminated because of errors.
C4275 warning に関する情報はあまり多くないようで…。
http://svn.apache.org/repos/asf/stdcxx/branches/4.2.0/include/rw/_defs.h など?
とりあえず warning を disable することで通るようにはなりましたが、精査が必要かも。
対策としては、SConstruct に /wd4275 を追加するなど。