View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002952VTK(No Category)public2006-03-10 13:012016-08-12 09:54
ReporterJohn O'Hara 
Assigned ToBrad King 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionmoved 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0002952: vtk + java fails to build using MinGW
DescriptionI was attempting to build VTK + Java wrappings in MinGW.

The build fails when compiling Common/vtkJavaUtil.cxx because the file mapiform.h is not available.

I believe this is a Microsoft Visual Studio-specific header file, which is not available to MinGW.

I has, as of yet, not been able to find a workaround for this problem.
TagsNo tags attached.
Project
Type
Attached Files

 Relationships

  Notes
(0003863)
John O'Hara (reporter)
2006-03-14 15:07

Addendum:

Commenting out the offending #include leads to the following error report:



Linking CXX shared library ../bin/libvtkCommonJava.dll
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray13GetTupleValueEiPc[vtkCharArray::GetTupleValue(int, char*)]+0x1b):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::GetTupleValue(int, char*)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray13SetTupleValueEiPKc[vtkCharArray::SetTupleValue(int, char const*)]+0x1b):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::SetTupleValue(int, char const*)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray16InsertTupleValueEiPKc[vtkCharArray::InsertTupleValue(int, char const*)]+0x1b):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::InsertTupleValue(int, char const*)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray20InsertNextTupleValueEPKc[vtkCharArray::InsertNextTupleValue(char const*)]+0x14):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::InsertNextTupleValue(char const*)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray17SetNumberOfValuesEi[vtkCharArray::SetNumberOfValues(int)]+0x14):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray11InsertValueEic[vtkCharArray::InsertValue(int, char)]+0x22):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::InsertValue(int, char)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray15InsertNextValueEc[vtkCharArray::InsertNextValue(char)]+0x1b):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::InsertNextValue(char)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray12WritePointerEii[vtkCharArray::WritePointer(int, int)]+0x1b):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::WritePointer(int, int)'
CMakeFiles/vtkCommonJava.dir/vtkCharArrayJava.obj(.text$_ZN12vtkCharArray8SetArrayEPcii[vtkCharArray::SetArray(char*, int, int)]+0x22):vtkCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<char>::SetArray(char*, int, int)'
CMakeFiles/vtkCommonJava.dir/vtkDoubleArrayJava.obj(.text$_ZN14vtkDoubleArray17SetNumberOfValuesEi[vtkDoubleArray::SetNumberOfValues(int)]+0x14):vtkDoubleArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<double>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkDoubleArrayJava.obj(.text$_ZN14vtkDoubleArray11InsertValueEid[vtkDoubleArray::InsertValue(int, double)]+0x1b):vtkDoubleArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<double>::InsertValue(int, double)'
CMakeFiles/vtkCommonJava.dir/vtkDoubleArrayJava.obj(.text$_ZN14vtkDoubleArray15InsertNextValueEd[vtkDoubleArray::InsertNextValue(double)]+0x14):vtkDoubleArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<double>::InsertNextValue(double)'
CMakeFiles/vtkCommonJava.dir/vtkFloatArrayJava.obj(.text$_ZN13vtkFloatArray17SetNumberOfValuesEi[vtkFloatArray::SetNumberOfValues(int)]+0x14):vtkFloatArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<float>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkFloatArrayJava.obj(.text$_ZN13vtkFloatArray11InsertValueEif[vtkFloatArray::InsertValue(int, float)]+0x1b):vtkFloatArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<float>::InsertValue(int, float)'
CMakeFiles/vtkCommonJava.dir/vtkFloatArrayJava.obj(.text$_ZN13vtkFloatArray15InsertNextValueEf[vtkFloatArray::InsertNextValue(float)]+0x14):vtkFloatArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<float>::InsertNextValue(float)'
CMakeFiles/vtkCommonJava.dir/vtkIdTypeArrayJava.obj(.text$_ZN14vtkIdTypeArray17SetNumberOfValuesEi[vtkIdTypeArray::SetNumberOfValues(int)]+0x14):vtkIdTypeArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<int>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkIdTypeArrayJava.obj(.text$_ZN14vtkIdTypeArray11InsertValueEii[vtkIdTypeArray::InsertValue(int, int)]+0x1b):vtkIdTypeArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<int>::InsertValue(int, int)'
CMakeFiles/vtkCommonJava.dir/vtkIdTypeArrayJava.obj(.text$_ZN14vtkIdTypeArray15InsertNextValueEi[vtkIdTypeArray::InsertNextValue(int)]+0x14):vtkIdTypeArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<int>::InsertNextValue(int)'
CMakeFiles/vtkCommonJava.dir/vtkIntArrayJava.obj(.text$_ZN11vtkIntArray17SetNumberOfValuesEi[vtkIntArray::SetNumberOfValues(int)]+0x14):vtkIntArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<int>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkIntArrayJava.obj(.text$_ZN11vtkIntArray11InsertValueEii[vtkIntArray::InsertValue(int, int)]+0x1b):vtkIntArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<int>::InsertValue(int, int)'
CMakeFiles/vtkCommonJava.dir/vtkIntArrayJava.obj(.text$_ZN11vtkIntArray15InsertNextValueEi[vtkIntArray::InsertNextValue(int)]+0x14):vtkIntArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<int>::InsertNextValue(int)'
CMakeFiles/vtkCommonJava.dir/vtkLongArrayJava.obj(.text$_ZN12vtkLongArray17SetNumberOfValuesEi[vtkLongArray::SetNumberOfValues(int)]+0x14):vtkLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<long>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkLongArrayJava.obj(.text$_ZN12vtkLongArray11InsertValueEil[vtkLongArray::InsertValue(int, long)]+0x1b):vtkLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<long>::InsertValue(int, long)'
CMakeFiles/vtkCommonJava.dir/vtkLongArrayJava.obj(.text$_ZN12vtkLongArray15InsertNextValueEl[vtkLongArray::InsertNextValue(long)]+0x14):vtkLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<long>::InsertNextValue(long)'
CMakeFiles/vtkCommonJava.dir/vtkShortArrayJava.obj(.text$_ZN13vtkShortArray17SetNumberOfValuesEi[vtkShortArray::SetNumberOfValues(int)]+0x14):vtkShortArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<short>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkShortArrayJava.obj(.text$_ZN13vtkShortArray11InsertValueEis[vtkShortArray::InsertValue(int, short)]+0x23):vtkShortArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<short>::InsertValue(int, short)'
CMakeFiles/vtkCommonJava.dir/vtkShortArrayJava.obj(.text$_ZN13vtkShortArray15InsertNextValueEs[vtkShortArray::InsertNextValue(short)]+0x1c):vtkShortArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<short>::InsertNextValue(short)'
CMakeFiles/vtkCommonJava.dir/vtkSignedCharArrayJava.obj(.text$_ZN18vtkSignedCharArray17SetNumberOfValuesEi[vtkSignedCharArray::SetNumberOfValues(int)]+0x14):vtkSignedCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<signed char>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkSignedCharArrayJava.obj(.text$_ZN18vtkSignedCharArray11InsertValueEia[vtkSignedCharArray::InsertValue(int, signed char)]+0x22):vtkSignedCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<signed char>::InsertValue(int, signed char)'
CMakeFiles/vtkCommonJava.dir/vtkSignedCharArrayJava.obj(.text$_ZN18vtkSignedCharArray15InsertNextValueEa[vtkSignedCharArray::InsertNextValue(signed char)]+0x1b):vtkSignedCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<signed char>::InsertNextValue(signed char)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedCharArrayJava.obj(.text$_ZN20vtkUnsignedCharArray17SetNumberOfValuesEi[vtkUnsignedCharArray::SetNumberOfValues(int)]+0x14):vtkUnsignedCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned char>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedCharArrayJava.obj(.text$_ZN20vtkUnsignedCharArray11InsertValueEih[vtkUnsignedCharArray::InsertValue(int, unsigned char)]+0x22):vtkUnsignedCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned char>::InsertValue(int, unsigned char)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedCharArrayJava.obj(.text$_ZN20vtkUnsignedCharArray15InsertNextValueEh[vtkUnsignedCharArray::InsertNextValue(unsigned char)]+0x1b):vtkUnsignedCharArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned char>::InsertNextValue(unsigned char)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedIntArrayJava.obj(.text$_ZN19vtkUnsignedIntArray17SetNumberOfValuesEi[vtkUnsignedIntArray::SetNumberOfValues(int)]+0x14):vtkUnsignedIntArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned int>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedIntArrayJava.obj(.text$_ZN19vtkUnsignedIntArray11InsertValueEij[vtkUnsignedIntArray::InsertValue(int, unsigned int)]+0x1b):vtkUnsignedIntArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned int>::InsertValue(int, unsigned int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedIntArrayJava.obj(.text$_ZN19vtkUnsignedIntArray15InsertNextValueEj[vtkUnsignedIntArray::InsertNextValue(unsigned int)]+0x14):vtkUnsignedIntArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned int>::InsertNextValue(unsigned int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedLongArrayJava.obj(.text$_ZN20vtkUnsignedLongArray17SetNumberOfValuesEi[vtkUnsignedLongArray::SetNumberOfValues(int)]+0x14):vtkUnsignedLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned long>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedLongArrayJava.obj(.text$_ZN20vtkUnsignedLongArray11InsertValueEim[vtkUnsignedLongArray::InsertValue(int, unsigned long)]+0x1b):vtkUnsignedLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned long>::InsertValue(int, unsigned long)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedLongArrayJava.obj(.text$_ZN20vtkUnsignedLongArray15InsertNextValueEm[vtkUnsignedLongArray::InsertNextValue(unsigned long)]+0x14):vtkUnsignedLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned long>::InsertNextValue(unsigned long)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedShortArrayJava.obj(.text$_ZN21vtkUnsignedShortArray17SetNumberOfValuesEi[vtkUnsignedShortArray::SetNumberOfValues(int)]+0x14):vtkUnsignedShortArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned short>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedShortArrayJava.obj(.text$_ZN21vtkUnsignedShortArray11InsertValueEit[vtkUnsignedShortArray::InsertValue(int, unsigned short)]+0x23):vtkUnsignedShortArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned short>::InsertValue(int, unsigned short)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedShortArrayJava.obj(.text$_ZN21vtkUnsignedShortArray15InsertNextValueEt[vtkUnsignedShortArray::InsertNextValue(unsigned short)]+0x1c):vtkUnsignedShortArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned short>::InsertNextValue(unsigned short)'
CMakeFiles/vtkCommonJava.dir/vtkLongLongArrayJava.obj(.text$_ZN16vtkLongLongArray17SetNumberOfValuesEi[vtkLongLongArray::SetNumberOfValues(int)]+0x14):vtkLongLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<long long>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkLongLongArrayJava.obj(.text$_ZN16vtkLongLongArray11InsertValueEix[vtkLongLongArray::InsertValue(int, long long)]+0x22):vtkLongLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<long long>::InsertValue(int, long long)'
CMakeFiles/vtkCommonJava.dir/vtkLongLongArrayJava.obj(.text$_ZN16vtkLongLongArray15InsertNextValueEx[vtkLongLongArray::InsertNextValue(long long)]+0x1b):vtkLongLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<long long>::InsertNextValue(long long)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedLongLongArrayJava.obj(.text$_ZN24vtkUnsignedLongLongArray17SetNumberOfValuesEi[vtkUnsignedLongLongArray::SetNumberOfValues(int)]+0x14):vtkUnsignedLongLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned long long>::SetNumberOfValues(int)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedLongLongArrayJava.obj(.text$_ZN24vtkUnsignedLongLongArray11InsertValueEiy[vtkUnsignedLongLongArray::InsertValue(int, unsigned long long)]+0x22):vtkUnsignedLongLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned long long>::InsertValue(int, unsigned long long)'
CMakeFiles/vtkCommonJava.dir/vtkUnsignedLongLongArrayJava.obj(.text$_ZN24vtkUnsignedLongLongArray15InsertNextValueEy[vtkUnsignedLongLongArray::InsertNextValue(unsigned long long)]+0x1b):vtkUnsignedLongLongArrayJava.cxx: undefined reference to `vtkDataArrayTemplate<unsigned long long>::InsertNextValue(unsigned long long)'
collect2: ld returned 1 exit status
make[2]: *** [bin/libvtkCommonJava.dll] Error 1
make[1]: *** [Common/CMakeFiles/vtkCommonJava.dir/all] Error 2
make: *** [all] Error 2
(0003864)
Mathieu Malaterre (developer)
2006-03-14 15:36

I don't think mapiform.h should be included. I'll double check. Thanks.
(0003865)
Brad King (developer)
2006-03-14 15:47

There is no dashboard entry for VTK on MinGW that uses shared libraries. I've been attempting to resolve the vtkDataArrayTemplate symbol export/import problems you are seeing but have not yet had the time to really nail down a solution. I'll update this bug report when I get that problem solved.
(0003866)
John O'Hara (reporter)
2006-03-14 16:01

Hint:

When setting up CMake using MinGW, you'll need to rename the files CMake creates as

<build dir>/CMake/libcmVTK_*.dll

to <build dir>/CMake/cmVTK_*.dll

in order to get CMake to set up your build project correctly. I'm not sure if this is related to this bug, or a separate bug. You only need to do this if you have BUILD_SHARED_LIBS set to ON.

(0003872)
Brad King (developer)
2006-03-16 17:12

The vtkDataArrayTemplate problem is due to GCC on MinGW having trouble dllexport-ing explicit template instantiations. I've updated the CMakeLists.txt file at the top of VTK to pass -Wl,--export-all-symbols to avoid the issue. It should be safe to export all symbols from DLLs because VTK works on non-dll platforms where all symbols are exported anyway. I'll have the change merged to the VTK 5.0 branch.

The loaded command problem is due to a bug in CMake which I've now fixed in CVS. It was improperly computing the name of shared modules when loading the command on MinGW.

CVS CMake has much stronger support for MinGW than previous versions, and it will even bootstrap at an MSys prompt. Please use it when trying to get farther in the build.
(0003909)
Mathieu Malaterre (developer)
2006-03-27 16:55

Can we close the bug ?
(0003919)
Brad King (developer)
2006-03-28 14:51

The original problem, the lack of mapiform.h, has not been fixed so we cannot yet close this bug.
(0003927)
John O'Hara (reporter)
2006-03-30 10:48

Additionally, even after commenting out the mapiform.h call and updating to the latest CVS code, I'm still having some issues. Now, I get the following error when attempting to make

$ make
Linking CXX shared library ../bin/libvtkRenderingJava.dll
c:\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin d -ljawt.lib
collect2: ld returned 1 exit status
make[2]: *** [bin/libvtkRenderingJava.dll] Error 1
make[1]: *** [Rendering/CMakeFiles/vtkRenderingJava.dir/all] Error 2
make: *** [all] Error 2

For some reason, it can't seem to find the jawt.lib file, even though it is where it is supposed to be. I was going to upgrade CMake to the CVS version also, but I seem to be experiencing connection errors whenever I try to get the new source. I'll try again later today. (FYI, I saw another member of the mailing-list encountered the same problem, no solution as of yet)
(0003928)
John O'Hara (reporter)
2006-03-30 10:51

Correction: the error message is

$ make
Linking CXX shared library ../bin/libvtkRenderingJava.dll
c:\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -ljawt.lib
collect2: ld returned 1 exit status
make[2]: *** [bin/libvtkRenderingJava.dll] Error 1
make[1]: *** [Rendering/CMakeFiles/vtkRenderingJava.dir/all] Error 2
make: *** [all] Error 2
  




(0003929)
John O'Hara (reporter)
2006-03-30 10:53

Let's try this again...
$ make
Linking CXX shared library ../bin/libvtkRenderingJava.dll
c:\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -ljawt.lib
collect2: ld returned 1 exit status
make[2]: *** [bin/libvtkRenderingJava.dll] Error 1
make[1]: *** [Rendering/CMakeFiles/vtkRenderingJava.dir/all] Error 2
make: *** [all] Error 2
(0003931)
Brad King (developer)
2006-03-30 11:00

Don't worry about the missing backslashes in your bug report. It is a bug in the bug tracker itself which I've reported.

You need to use CVS CMake on MinGW as well as CVS VTK.
(0036844)
Kitware Robot (administrator)
2016-08-12 09:54

Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current VTK Issues page linked in the banner at the top of this page.

 Issue History
Date Modified Username Field Change
2011-06-16 13:11 Zack Galbreath Category => (No Category)
2016-08-12 09:54 Kitware Robot Note Added: 0036844
2016-08-12 09:54 Kitware Robot Status expired => closed
2016-08-12 09:54 Kitware Robot Resolution open => moved


Copyright © 2000 - 2018 MantisBT Team