VTK9.3をwindowsでStatic Link LibraryとしてCMakeする
WindowsでVTK9.3をビルドする。
BUILD_SHARED_LIBS を OFF
Static Link Libraryとしてビルドするには、BUILD_SHARED_LIBS をOFFにする。
ただし、Windowsでこのチェックを外すと、以下のエラーが起こる可能性がある。
3>vtkCommonCore-9.3.lib(vtkSMPToolsAPI.obj) : error LNK2019: 未解決の外部シンボル "public: bool __cdecl vtk::detail::smp::vtkSMPToolsImpl<1>::IsParallelScope(void)" (?IsParallelScope@?$vtkSMPToolsImpl@$00@smp@detail@vtk@@QEAA_NXZ) が関数 "public: bool __cdecl vtk::detail::smp::vtkSMPToolsAPI::IsParallelScope(void)" (?IsParallelScope@vtkSMPToolsAPI@smp@detail@vtk@@QEAA_NXZ) で参照されました
3>D:\myDevelop\mydev\VTK\solution\bin\Release\vtkProbeOpenGLVersion-9.3.exe : fatal error LNK1120: 1 件の未解決の外部参照
3>プロジェクト "vtkProbeOpenGLVersion.vcxproj" のビルドが終了しました -- 失敗。
そこで次の設定が必要
VTK_SMP_ENABLE_STDTHREAD を OFF
上記vtkSMPToolsAPIのエラーを避けるため、VTK_SMP_ENABLE_STDTHREADをOFFに設定。
参考
VTK failed to build due to error LNK2019 and error LNK1120 on Windows with msvc
https://discourse.vtk.org/t/vtk-failed-to-build-due-to-error-lnk2019-and-error-lnk1120-on-windows-with-msvc/11671/16
感想
情報自体は大したことはない。ただ確認するためのVTKのビルドが長すぎる。