[vtkusers] mingw library naming - bug 10969
Jim Peterson
jimcp at cox.net
Sat Jul 31 14:52:54 EDT 2010
Andre,
thanks, I think I finally found a potentially productive path for a
resolution to this issue. The vtk CMAKE directory has two cmake "macros"
(KitCommonBlock.cmake and KitCommonJavaBlock.cmake) in
KitCommonBlock.cmake the ADD_LIBRARY I added:
IF (WIN32)
SET_TARGET_PROPERTIES (vtk${KIT} PROPERTIES PREFIX "" )
ENDIF (WIN32)
and in KitCommonJava.cmake after the ADD LIBRARY I added:
IF (WIN32)
SET_TARGET_PROPERTIES (vtk${KIT}Java PROPERTIES PREFIX "" )
ENDIF (WIN32)
This has the outputs created so that the delivered java samples at least
get past the load of the JNI libraries.
What I am seeing now is a failure in VTKObject at the line:
this.vtkId = this.VTKInit();
in the VTKObject constructor.
The trace back when running the CONE.JAVA example is:
vtk libraries loaded
Exception in thread "main" java.lang.UnsatisfiedLinkError:
vtk.vtkConeSource.VTKInit()J
at vtk.vtkConeSource.VTKInit(Native Method)
at vtk.vtkObject.<init>(vtkObject.java:96)
at vtk.vtkAlgorithm.<init>(vtkAlgorithm.java:765)
at vtk.vtkPolyDataAlgorithm.<init>(vtkPolyDataAlgorithm.java:163)
at vtk.vtkConeSource.<init>(vtkConeSource.java:114)
at Cone.main(Cone.java:35)
Based on this revelation, I am going to say CMAKE does not have a bug as
originally reported in 10969. but there still may be some interface
requirement to resolve for use of the java wrappers in a Windows JVM.
Does anyone know if the vtkObject.cxx is supposed to implement a VTKInit
function? if not, where exactly is that supposed to be from?
Thanks for the patience and information you folks have provided.
Jim Peterson
André Prins wrote:
> Hi All,
>
> Allow me to chime in a little on the use of Vtk libs with MinGW. I
> also reported a python-wrapping and installation issue a few days ago
> as a response to the mail from Jim.
>
>
>> What is the primary user of a mingw compiler system trying to achieve?
>>
>> Somebody trying to build unix-y stuff for Windows?
>> Or somebody trying to build unix-y stuff to still be unix-y in an MSYS shell
>> environment?
>>
>
> The most important reason for me is that I can test my source-code for
> compatibility with the Gcc compiler, without having to setup a Linux
> machine or a full cygwin environment. Second, I used gcc a lot (in
> Unix/Linux), but am stuck with a windows-environment nowadays. It is
> simply faster for me to set up a small test-application with a
> makefile (or CMakeLists.txt) then to open up a new visual studio
> project. Starting visual studio is slow on an Asus EEE Netbook.
>
> Personally, I would say: get rid of the lib-prefix in MinGW...
> 1) It implies a consistent dll and pyd name on windows, which is good.
> 2) It probably solves the install errors with MinGW and python-wrapping.
>
> This is something which can be done with CMake and is what I do when I
> want my own vtk-library wrapped with python. E.g., I have a "Readers"
> library, which does the following in CMake:
>
> add_library( ReadersPython SHARED ${ReadersPython_SRCS} )
> # Ensure the lib-prefix is gone and the library ends with .pyd
> set_target_properties( ReadersPython PROPERTIES PREFIX "" )
> set_target_properties( ReadersPython PROPERTIES SUFFIX ".pyd" )
>
> I have not encountered any problems with this approach. I guess this
> is similar to setting a "system-wide" CMAKE_SHARED_LIBRARY_PREFIX?
>
> Regards,
> Andre
>
>
More information about the vtkusers
mailing list