[vtk-developers] QVTKWidgetPlugin debug/release versions on Windows

Andrew Maclean andrew.amaclean at gmail.com
Wed Aug 6 01:54:14 EDT 2008


Sorry the attachment was to big.

You put me on the right "path" (almost). Several things were not correct.
1) I had MikTex in the path and the QT??? dlls were loading from
there. So I put the Qt path first and the dlls were loaded from there.
2) In the debug case both the release and debug versions of the Qt
dlls were being loaded because I have the VTK_BIN path in the PATH
variable set to the release version. Once I set this to the debug
version everything loaded Ok. Howerver ...

... the error now appears for the release version, once again QtGui4
and QtGui4d and QtCore and QtCored are being loaded. If I remove
VTK_BIN from the path then nothing loads.

3) It seems to me that something triggers a load for both the debug
and release versions. Regarding Paraview, do the paraview guys use
static builds?

I have attached CMakeCache.txt and a list of loaded dlls.

Thanks
  Andrew

On Wed, Aug 6, 2008 at 1:54 PM, Clinton Stimpson <clinton at elemtech.com> wrote:
>
> On Aug 5, 2008, at 4:33 PM, Andrew Maclean wrote:
>
>> I tried out the "d"postfix, and it sems to work Ok, but does not fix my
>> problem!
>>
>> This is probably me but there is something I don't understand.
>>
>> 1) I have copied the release version of QVTKWidgetPlugin.dll to
>> %QT_PATH%\plugins\designer and it appears Ok in designer. Note that
>> the debug build of this dll will not even register in designer.
>
>
>>
>> 2) I take SimpleView in the VTK/EXamples/QT and it builds OK - no
>> problems. I am building it in Visual Studio 9. CMake finds everything,
>> no errors, no warnings.
>>
>> When I run the release version in Visual Studio or from a command
>> prompt, it runs Ok.
>> However when I run the debug version either from Visual Studio or from
>> a command prompt, the instantiation fails at the line:
>>    vtkWidget = new QVTKWidget(centralWidget);
>> ui_uiSimpleView4.h
>> With a message: "QWidget: Must construct a QApplication before a
>> QPaintDevice"
>
>
>>
>> Why isn't QVTKWidget able to be used when building debug versions of
>> the executable?
>
> I think the error you're getting has come up on the vtk users list before.
> That error usually comes from the application depending on both the debug
> and release Qt libraries, either directly or indirectly.  You can get a hint
> of where this is coming from by looking at the output window when you debug
> the application, and if you're using shared Qt libs.  You might see
> QtGui4.dll and QtGui4d.dll loaded, which shouldn't happen.  Perhaps
> something is messed up in your CMakeCache.txt file.  You could send it to me
> if you want me to have a look.  Its interesting that you'd get this, and
> none of the ParaView developers would.
>
>
>> Why won't the debug version of QVTKWidgetPlugin.dll register in designer?
>>
>
> Because you've got a release build of the designer.  Debug builds of plugins
> are ignored.
> You only need to build one plugin, either debug or release to match your
> designer.  With that, you can create user interfaces that get compiled into
> your applications.  Those applications you create do not link with the
> plugin, but rather with the QVTK library.
>
>
> Clint
>
>
>> I am using QT-4.3.4. Vista, Visual Studio Version 9.
>>
>> Andrew
>>
>>
>>
>> On Tue, Aug 5, 2008 at 2:11 PM, Clinton Stimpson <clinton at elemtech.com>
>> wrote:
>>>
>>> Probably no one else has tried to do that.  They either copy the plugin
>>> into
>>> the Qt designer plugin directory, or don't use a debug version of the Qt
>>> designer.
>>>
>>> Adding a "d" postfix is fine with me.
>>>
>>> Clint
>>>
>>> On Aug 4, 2008, at 9:51 PM, Andrew Maclean wrote:
>>>
>>>> When using Windows, how do developers handle the problem of debug and
>>>> release versions of QVTKWidgetPlugin.dll?
>>>> The issue I have is that I have release versions of the library in my
>>>> path and consequently when I set QT_PLUGIN_PATH="C:\Program
>>>> Files\VTK\plugins" of course, it only picks up one version, namely the
>>>> release version.
>>>>
>>>> Does anyone see any problems modifing:
>>>> IF(NOT VTK_NO_LIBRARY_VERSION)
>>>>  SET(VTK_LIBRARY_PROPERTIES ${VTK_LIBRARY_PROPERTIES}
>>>>   VERSION "${VTK_VERSION}"
>>>>   SOVERSION "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}"
>>>>   )
>>>> ENDIF(NOT VTK_NO_LIBRARY_VERSION)
>>>>
>>>> to
>>>> IF(NOT VTK_NO_LIBRARY_VERSION)
>>>>  SET(VTK_LIBRARY_PROPERTIES ${VTK_LIBRARY_PROPERTIES}
>>>>   VERSION "${VTK_VERSION}"
>>>>   SOVERSION "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}"
>>>>   DEBUG_POSTFIX "d"
>>>>   )
>>>> ENDIF(NOT VTK_NO_LIBRARY_VERSION)
>>>>
>>>> Which will add a "d" postfix to the debug versions of the libraries?
>>>>
>>>> Thanks in advance for any comments
>>>>
>>>> Andrew.
>>>>
>>>> --
>>>> ___________________________________________
>>>> Andrew J. P. Maclean
>>>> Centre for Autonomous Systems
>>>> The Rose Street Building J04
>>>> The University of Sydney 2006 NSW
>>>> AUSTRALIA
>>>> Ph: +61 2 9351 3283
>>>> Fax: +61 2 9351 7474
>>>> URL: http://www.acfr.usyd.edu.au/
>>>> ___________________________________________
>>>> _______________________________________________
>>>> vtk-developers mailing list
>>>> vtk-developers at vtk.org
>>>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>>
>>> _______________________________________________
>>> vtk-developers mailing list
>>> vtk-developers at vtk.org
>>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>>
>>
>>
>>
>> --
>> ___________________________________________
>> Andrew J. P. Maclean
>> Centre for Autonomous Systems
>> The Rose Street Building J04
>> The University of Sydney 2006 NSW
>> AUSTRALIA
>> Ph: +61 2 9351 3283
>> Fax: +61 2 9351 7474
>> URL: http://www.acfr.usyd.edu.au/
>> ___________________________________________
>
> _______________________________________________
> vtk-developers mailing list
> vtk-developers at vtk.org
> http://www.vtk.org/mailman/listinfo/vtk-developers
>



-- 
___________________________________________
Andrew J. P. Maclean
Centre for Autonomous Systems
The Rose Street Building J04
The University of Sydney 2006 NSW
AUSTRALIA
Ph: +61 2 9351 3283
Fax: +61 2 9351 7474
URL: http://www.acfr.usyd.edu.au/
___________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CacheAndDll.zip
Type: application/zip
Size: 6582 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20080806/f27a9003/attachment-0001.zip>


More information about the vtk-developers mailing list