Greetings all.
I have read in quite a few places that VTK has troubles under MingW and MSYS and have attempted as many workarounds as I can (eg CMAKE_CXX_FLAGS
of -Wa,-mbig-obj
for File too big
errors and -O1
optimization with release
build to work around some undefined reference
errors). However, there is one undefined reference
error I can’t seem to get past:
FAILED: bin/libvtkCommonDataModel-9.4.dll lib/libvtkCommonDataModel-9.4.dll.a
C:\windows\system32\cmd.exe /C "cd . && C:\gcc-9.5.0\mingw64\bin\c++.exe -mwin32 -mthreads -O3 -DNDEBUG -mthreads -shared -o bin\libvtkCommonDataModel-9.4.dll -Wl,--out-implib,lib\libvtkCommonDataModel-9.4.dll.a -Wl,--major-image-version,9,--minor-image-version,4 @CMakeFiles\CommonDataModel.rsp && cd ."
c:/gcc-9.5.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.5.0/../../../../x86_64-w64-mingw32/bin/ld.exe: Common/DataModel/CMakeFiles/CommonDataModel.dir/vtkBoundingBox.cxx.obj:vtkBoundingBox:(.text+0xa85b): undefined reference to vtkImplicitArray<vtkStructuredPointBackend<double> >::GetTypedTuple(long long, double*) const'
c:/gcc-9.5.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.5.0/../../../../x86_64-w64-mingw32/bin/ld.exe: Common/DataModel/CMakeFiles/CommonDataModel.dir/vtkBoundingBox.cxx.obj:vtkBoundingBox:(.text+0xbd0b): undefined reference to vtkImplicitArray<vtkStructuredPointBackend<double> >::GetTypedTuple(long long, double*) const'
c:/gcc-9.5.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.5.0/../../../../x86_64-w64-mingw32/bin/ld.exe: Common/DataModel/CMakeFiles/CommonDataModel.dir/vtkBoundingBox.cxx.obj:vtkBoundingBox:(.text+0xd1bb): undefined reference to vtkImplicitArray<vtkStructuredPointBackend<double> >::GetTypedTuple(long long, double*) const'
collect2.exe: error: ld returned 1 exit status
Cmake config and gen logs. Full make log. Full cmake_install.cmake file here.
Build setup:
winlibs_mingw’s GCC 9.5.0 + MinGW-w64 10.0.0 MSVCRT (release 1)
Chocolatey’s GNU make 4.4.1
Windows cmake 3.31.3
VTK cloned from kitware’s gitlab at commit hash 5a0129e46105c83d7c33bb65a3daa6506bb2cf59 (2 commits behind master as of this post).
For debugging purposes, make
has been run with VERBOSE=1
and the CMAKE_VERBOSE_MAKEFILE
has been set to ON
in the cmake config.