Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Add VTK library to Qt project



  • I set up CDB path as it said in link text but still doesn't work.
    Am I right that if my CDB installed properly then it should run my app and if some problem occurs then an error should appear that more detailed describes my problem?


  • Lifetime Qt Champion

    Hi,

    The VTK dlls are likely not found at run time.

    Go to the Run part of the Project panel and modify the PATH environment variable so that it also contains the folder where the VTK dlls can be found.


  • Lifetime Qt Champion

    Did you check that your debugger is for the right architecture ?



  • @SGaist I think so. There are several of them for different compilators and architectures and I think Qt choses the right one for my x64 application
    Debugger.jpg


  • Lifetime Qt Champion

    Did you check that it's the correct one that is selected for the kit you are using ?



  • @SGaist Yes. I just checked itDebugger1.jpg



  • @SGaist @jsulm I think I have found the reason why I used to not get any meaningful errors. From here I turned off the Windows "Fault Tolerant Heap" and now I get the error:

    cannot open C:\Windows\main.obj.5848.31.jom for write
    

    But I dont have any file in that folder with name "main..."


  • Lifetime Qt Champion

    And you should not. There's no reason for the build system to try to write to that folder. You should do a full clean rebuild.



  • @SGaist Thank you, I think the problem was solved.
    What did I do:
    After I rebuild the project I got the error:

    ERROR: In D:\Qt\Downloaded\VTK-8.2.0\Rendering\Core\vtkTextMapper.cxx, line 550
    vtkOpenGLTextMapper (0000000002D23D40): Could not locate vtkTextRenderer object.
    

    Here I saw the solution for that problem. Now to run any VTK example I add:

    #include <vtkAutoInit.h>
    VTK_MODULE_INIT(vtkRenderingOpenGL2);
    VTK_MODULE_INIT(vtkRenderingContextOpenGL2); // this is for 2D graphics [link](http://vtk.1045678.n5.nabble.com/Error-no-override-found-for-vtkContextDevice2D-td5741533.html)
    VTK_MODULE_INIT(vtkInteractionStyle);
    VTK_MODULE_INIT(vtkRenderingFreeType);
    

    But I'm interested why the error say somethink about D:\Qt\Downloaded\VTK-8.2.0\Rendering\Core\vtkTextMapper.cxx? Here I have only unpacked VTK folder and it is installed in C:\apps\MSVC_apps_debug\VTK
    Why the error refers to the folder where VTK was simply downloaded?


  • Lifetime Qt Champion

    You should take a look at the code where the message is generated. That might give you some clues.



  • I have the same problem once again.
    After I reinstalled Windows 7 to Windows 10 I can run some simple examples from VTK web-site. But some other examples don't work and I the problem is that I dont get any error message. For example I delete all build folder and run app in debug mode and Qmake compiler output:

    03:44:37: The steps for the VTK project are being carried out ...
    03:44:37: It starts: "C: \ Qt \ 5.12.6 \ msvc2017_64 \ bin \ qmake.exe" C: \ Users \ tasik \ Documents \ Qt_Projects \ VTK \ VTK.pro -spec win32-msvc "CONFIG + = debug "" CONFIG + = qml_debug "
    Info: creating stash file C: \ Users \ tasik \ Documents \ Qt_Projects \ build-VTK-Desktop_Qt_5_12_6_MSVC2017_64_bit-Debug \ .qmake.stash
    03:44:39: The process "C: \ Qt \ 5.12.6 \ msvc2017_64 \ bin \ qmake.exe" completed successfully.
    03:44:39: It starts: "C: \ Qt \ Tools \ qtcreator-4.11.0 \ bin \ jom.exe" -f C: / Users / tasik / Documents / Qt_Projects / build-VTK-Desktop_Qt_5_12_6_MSVC2017_64_bit-Debug / Makefile qmake_all
    
    jom 1.1.3 - empower your cores   // THIS IS HIGHLITED WITH RED COLOR
    
    03:44:39: The process "C: \ Qt \ Tools \ qtcreator-4.11.0 \ bin \ jom.exe" completed successfully.
    03:44:39: Elapsed time: 00:02.
    

    Then I run debug and I get:

    03:48:45: The stages for the VTK project are being executed ...
    03:48:45: Settings have not changed, the qmake stage is skipped.
    03:48:45: It starts: "C: \ Qt \ Tools \ qtcreator-4.11.0 \ bin \ jom.exe"
    C: \ Qt \ Tools \ qtcreator-4.11.0 \ bin \ jom.exe -f Makefile.Debug
    C: \ Qt \ 5.12.6 \ msvc2017_64 \ bin \ uic.exe .. \ VTK \ mainwindow.ui -o ui_mainwindow.h
    cl -c -nologo -Zc: wchar_t -FS -Zc: rvalueCast -Zc: inline -Zc: strictStrings -Zc: throwingNew -Zc: referenceBinding -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 - wd4577 -wd4467 -EHsc /Fddebug\VTK.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_DEPRECATED_WARNINGS -DQT_QML_BW_BID_IBWDIBIDIBDIBDIBDIBIDIBDIBDIBWIB -IC: \ apps \ MSVC_apps_debug \ VTK_820 \ include \ vtk-8.2 -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtWidgets -IC: \ Qt \ 5.12 .6 \ msvc2017_64 \ include \ QtGui -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtANGLE -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtCore -Idebug -I. -I / include -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ mkspecs \ win32-msvc -Fodebug \ @C: \ Users \ tasik \ AppData \ Local \ Temp \ main.obj.3864.32.jom
    cl -BxC: \ Qt \ 5.12.6 \ msvc2017_64 \ bin \ qmake.exe -nologo -Zc: wchar_t -FS -Zc: rvalueCast -Zc: inline -Zc: strictStrings -Zc: throwingNew -Zc: referenceBinding -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EC: \ Qt \ 5.12.6 \ msvc2017_64 \ mkspecs \ features \ data \ dummy.cpp 2> NUL> debug \ moc_predefs.h
    cl -c -nologo -Zc: wchar_t -FS -Zc: rvalueCast -Zc: inline -Zc: strictStrings -Zc: throwingNew -Zc: referenceBinding -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 - wd4577 -wd4467 -EHsc /Fddebug\VTK.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_DEPRECATED_WARNINGS -DQT_QML_BW_BID_IBWDIBIDIBDIBDIBDIBIDIBDIBDIBWIB -IC: \ apps \ MSVC_apps_debug \ VTK_820 \ include \ vtk-8.2 -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtWidgets -IC: \ Qt \ 5.12 .6 \ msvc2017_64 \ include \ QtGui -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtANGLE -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtCore -Idebug -I. -I / include -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ mkspecs \ win32-msvc -Fodebug \ @C: \ Users \ tasik \ AppData \ Local \ Temp \ mainwindow.obj.3864.110.jom
    main.cpp
    mainwindow.cpp
    C: \ Qt \ 5.12.6 \ msvc2017_64 \ bin \ moc.exe -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_DEPRECATED_WARNINGS -DQT_LIBD_LIBD_LIB_DIBT_LIB_LIB_LIB_LIB_LIBE_LIB_LIB_LIB_DIT_LIB_LIB_DIT_LIB_DIT_LIBE_LINE /tasik/Documents/Qt_Projects/build-VTK-Desktop_Qt_5_12_6_MSVC2017_64_bit-Debug/debug/moc_predefs.h -IC: /Qt/5.12.6/msvc2017_64/mkspecs/win32-msvc -IC_Projects / ICKms / VTs / ICsProcs / ICsProcs / ICs -IC: /apps/MSVC_apps_debug/VTK_820/include/vtk-8.2 -IC: /Qt/5.12.6/msvc2017_64/include -IC: /Qt/5.12.6/msvc2017_64/include/QtWidgets -IC: /Qt/5.12 .6 / msvc2017_64 / include / QtGui -IC: /Qt/5.12.6/msvc2017_64/include/QtANGLE -IC: /Qt/5.12.6/msvc2017_64/include/QtCore -I. -I "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 10/14/25017 \ ATLMFC \ include" -I "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 10.14.25017 \ include "-I" C: \ Program Files (x86) \ Windows Kits \ NETFXSDK \ 4.6.1 \ include \ um "-I" C: \ Program Files ( x86) \ Windows Kits \ 10 \ include \ 10.0.18362.0 \ ucrt "-I" C: \ Program Files (x86) \ Windows Kits \ 10 \ include \ 10.0.18362.0 \ shared "-I" C: \ Program Files ( x86) \ Windows Kits \ 10 \ include \ 10.0.18362.0 \ um "-I" C: \ Program Files (x86) \ Windows Kits \ 10 \ include \ 10.0.18362.0 \ winrt ".. \ VTK \ mainwindow.h - o debug \ moc_mainwindow.cpp
    cl -c -nologo -Zc: wchar_t -FS -Zc: rvalueCast -Zc: inline -Zc: strictStrings -Zc: throwingNew -Zc: referenceBinding -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 - wd4577 -wd4467 -EHsc /Fddebug\VTK.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_DEPRECATED_WARNINGS -DQT_QML_BW_BID_IBWDIBIDIBDIBDIBDIBIDIBDIBDIBWIB -IC: \ apps \ MSVC_apps_debug \ VTK_820 \ include \ vtk-8.2 -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtWidgets -IC: \ Qt \ 5.12 .6 \ msvc2017_64 \ include \ QtGui -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtANGLE -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ include \ QtCore -Idebug -I. -I / include -IC: \ Qt \ 5.12.6 \ msvc2017_64 \ mkspecs \ win32-msvc -Fodebug \ @C: \ Users \ tasik \ AppData \ Local \ Temp \ moc_mainwindow.obj.3864.1672.jom
    moc_mainwindow.cpp
    link / NOLOGO / DYNAMICBASE / NXCOMPAT / DEBUG / SUBSYSTEM: WINDOWS "/ MANIFESTDEPENDENCY: type = 'win32' name = 'Microsoft.Windows.Common-Controls' version =' 6.0.0.0 'publicKeyToken =' 6595b64144ccf1df 'language =' * '' processorArchitecture = '*' "/ MANIFEST: embed /OUT:debug\VTK.exe @C: \ Users \ tasik \ AppData \ Local \ Temp \ VTK.exe.3864.6172.jom
    03:48:52: The process "C: \ Qt \ Tools \ qtcreator-4.11.0 \ bin \ jom.exe" completed successfully.
    03:48:52: Elapsed time: 00:07.
    

    Everything is well but suddenly I get a window with text "CDB process ended"

    If I run in release mode then QMAKE tells me the same jom 1.1.3 - empower your cores and when running the project compiler tells me something similar as in debug mode but application output:

    03:54:39: C: \ Users \ tasik \ Documents \ Qt_Projects \ build-VTK-Desktop_Qt_5_12_6_MSVC2017_64_bit-Release \ release \ VTK.exe starts ...
    03:54:39: The program ended unexpectedly.
    03:54:39: The process was completed forcibly.
    03:54:39: C: \ Users \ tasik \ Documents \ Qt_Projects \ build-VTK-Desktop_Qt_5_12_6_MSVC2017_64_bit-Release \ release \ VTK.exe failed.
    

    Seems to me that something stops my application... I already turned off Fault Tolerant Heap but that didn't help.
    Here is my kit:kit.png



  • And happy New Year!
    Sorry but I can't leave my project even at such holiday :D


  • Lifetime Qt Champion

    Happy new year !

    Did you change any dependency ?
    VTK version ?
    Application name ?



  • @SGaist I recompiled same version of VTK and it's here:
    C:\apps\MSVC_apps_debug\VTK_820
    Then I copied project from E:\Users\Tasik\Documents\Qt_prj\VTK to C:\Users\tasik\Documents\Qt_Projects\VTK. So application name is the same.
    And dependency it is difficult to say but I use the same Qt and MSVC.
    Don't you know what jom 1.1.3 - empower your cores means?
    Here is my Qt configuration:
    qt2.png qt1.png


  • Lifetime Qt Champion

    Did you nuke the .pro.user file ?
    If not, this one is likely still configured for your old project.



  • @SGaist yes I looked carefully at the .pro-file and I think it'is ok because it is a standart pro-file with added libraries. I also tried to create new project, add libraries and launche copied main.cpp - the same result.
    Do you know what jom 1.1.3 - empower your cores means? Beaucause this is the only thing that sometimes is highlited with red color
    pro.png CDB.png



  • @SGaist I found that I don't have PATH (all in capital) neither in ENVIRONMENT VARIABLES nor in SYSTEM VARIABLES.
    I only have Path ENVIRONMENT VARIABLE. Maybe I should create it and point to some Qt or Visual Studio components?


  • Lifetime Qt Champion

    I wasn't talking about the .pro file but the .pro.user file that is generated by Qt Creator and which contains the various settings of your project.

    No, just use Path since it's what is already used by the system (I currently don't know why the casing has changed).



  • @SGaist yes, I've tried to delete it but unfortunately that didn't help
    I don't have any idea what is the possible reason of my problem now


  • Lifetime Qt Champion

    You may have gremlins in your machine...

    Did you check with DependencyWalker if you are missing any dll ?

    As for the jom message, jom is a nmake replacement that does handle parallel building in a better.



  • @SGaist said in Add VTK library to Qt project:

    You may have gremlins in your machine...

    What is "gremlins"?
    I just tried dependency walker even I dont fully understand how to use it (I clicked File->Open MyApp) I can say that all these libraries that are highlighted with yellow I have in C:\apps\MSVC_apps_debug\VTK_820\bin
    And I added this /bin path to Path and PATH variables in Qt Runtime Environment (in Projects tab)
    dll.png DependencyWalker.png



  • @SGaist thank you!
    Tanks to your idea that I miss some libraries I doble clicked on MyApp.exe :)
    And it told me that it needs some VTK libraries and ZLIB!!! O forgot that when I was compiling VTK libraries last time (on Windows 10) I pointed that I have ZLIB in Cmake GUI and when I did it before (on Windows 7) I didn't do that. And it seems to me that the debugger doesn't have to tell me wether I miss libraries or not.

    Then I copied .dll files from /VTK/bin and /ZLIB/bin to MyApp.exe folder and it worked
    Then I added /ZLIB/bin to the PATH and deleted .dll files from MyApp.exe folder and it also worked
    But what is the difference between BUILD and RUNTIME settings in as in picture below? Now I added path to /VTK/bin and /ZLIB/bin in both of them.
    Tomorrow I'm going to try other examples from VTK web-site but I think all of them should now wooooork :)
    difference.png


  • Lifetime Qt Champion

    Glad you found out and thanks for sharing !

    As for the gremlin, it comes from an old plane related sabotaging critter.



  • @SGaist ahaha thank for gremlins)


Log in to reply