IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Creator Discussion :

Intégration de VTK 5.6 dans Qt Creator


Sujet :

Qt Creator

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Intégration de VTK 5.6 dans Qt Creator
    Bonjour à tous.

    Après avoir passé plusieurs semaines sur ce problème, je vous en fais part car je commence à être à court de solutions...
    Je souhaiterais pouvoir intégrer VTK dans Qt Creator afin d'y lire une image DICOM.

    J'avais dans un premier temps réalisé l'installation de VTK, sa construction, avec CMake "générateur Visual Studio 9 2008" et donc Visual 9. Problème (je pense), j'ai compilé Qt avec MinGW. Après l'intégration dans mon .pro des libs et include, à la compilation du moindre bout de code, alors que l'auto-complétion était bonne et me trouvait mes méthodes, j'obtenais la même erreur "undefined reference to `vtkDICOMImageReader::New()", "undefined reference to `vtkDICOMImageReader::GetHeight()'", etc... En regardant dans mes répertoires créés par la construction du projet "INSTALL" avec Visual, j'avais bien les .lib dans le dossier lib, mais uniquement les .h dans le dossier include, aucune .dll.


    Je suis reparti à l'étape CMake, et j'ai changé quelques paramètres :
    • J'ai choisi le type de génération "MinGW Makefile" en spécifiant le compilateur gcc du répertoire de MinGW\bin de Qt.
    • J'ai coché "BUILD_SHARED_LIBS"
    • J'ai décoché "CMAKE_USE_PTHREADS"
    • J'ai coché "VTK_USE_QT" et "VTK_USE_QVTK_QTOPENGL"
    • Et j'ai décoché "VTK_USE_INFOVIS" et "VTK_USE_GEOVIS"


    La génération se passe, j'utilise alors le Command Prompt fourni par Qt, et dans le répertoire de destination de la génération de CMake, je lance "mingw32-make". Commence alors la construction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    d:\vtk_mingw\VTK_build>mingw32-make
    Scanning dependencies of target vtksysEncodeExecutable
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksysEncodeExecutable.dir/EncodeExecutable.obj
    Linking C executable ..\..\bin\vtksysEncodeExecutable.exe
    [  0%] Built target vtksysEncodeExecutable
    Scanning dependencies of target vtksysProcessFwd9x
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksysProcessFwd9x.dir/ProcessFwd9x.obj
    Linking C executable ..\..\bin\vtksysProcessFwd9x.exe
    [  0%] Built target vtksysProcessFwd9x
    [  0%] Generating vtksysProcessFwd9xEnc.c
    Scanning dependencies of target vtksys
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksys.dir/ProcessWin32.obj
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksys.dir/vtksysProcessFwd9
    xEnc.obj
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksys.dir/Base64.obj
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksys.dir/MD5.obj
    [  0%] Building C object Utilities/kwsys/CMakeFiles/vtksys.dir/System.obj
    [  0%] Building CXX object Utilities/kwsys/CMakeFiles/vtksys.dir/Directory.obj
    [  0%] Building CXX object Utilities/kwsys/CMakeFiles/vtksys.dir/DynamicLoader.obj
    [  0%] Building CXX object Utilities/kwsys/CMakeFiles/vtksys.dir/Glob.obj
    [  0%] Building CXX object Utilities/kwsys/CMakeFiles/vtksys.dir/RegularExpression.obj
    [  0%] Building CXX object Utilities/kwsys/CMakeFiles/vtksys.dir/SystemTools.obj
    In file included from D:\vtk_mingw\VTK_src\Utilities\kwsys\SystemTools.cxx:19:
    D:\vtk_mingw\VTK_build\Utilities/vtksys/ios/sstream: In member function 'void vtksys_ios::istringstream::clear(int)':
    D:\vtk_mingw\VTK_build\Utilities/vtksys/ios/sstream:176: error: invalid conversion from 'int' to 'std::_Ios_Iostate'
    D:\vtk_mingw\VTK_build\Utilities/vtksys/ios/sstream:176: error:   initializing argument 1 of 'void std::basic_ios<_CharT, _Traits>::clear(std::_Ios_Iostate) [with _CharT = char, _Traits = std::char_traits<char>]'
    D:\vtk_mingw\VTK_src\Utilities\kwsys\SystemTools.cxx: In static member function
    'static bool vtksys::SystemTools::WriteRegistryValue(const char*, const char*, vtksys::SystemTools::KeyWOW64)':
    D:\vtk_mingw\VTK_src\Utilities\kwsys\SystemTools.cxx:740: warning: deprecated conversion from string constant to 'CHAR*'
    mingw32-make[2]: *** [Utilities/kwsys/CMakeFiles/vtksys.dir/SystemTools.obj] Error 1
    mingw32-make[1]: *** [Utilities/kwsys/CMakeFiles/vtksys.dir/all] Error 2
    mingw32-make: *** [all] Error 2

    Quand j'ai vu la construction se lancer, je me suis dit "ouf, enfin !" et finalement non... A mon avis, le problème vient de CMake mais je n'ai plus d'idée sur les modifications à y faire pour que la construction passe ensuite. : (

    Merci de m'avoir lu en tout cas, ainsi que pour d'éventuelles pistes/solutions/soutiens/aspirines !

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Suite au passage à un passage de Qt Creator 1.3.1 à la version 2.0.0 (qui contient un lanceur de commande CMake) et un downgrade de VTK de la 5.6 à la 5.2, j'ai pu obtenir une partie de la solution, les ".a".

    Souci, je n'ai pas obtenu de .h, du coup, même si j'ajoute les ".a" dans le ".pro" de mon projet, je ne vois pas trop comment y accéder sans les ".h" correspondants.

    Je pense que la syntaxe dans le ".pro" est bonne même s'il y a plus simple :
    LIBS += vtk/libvtkDICOMParser.a \
    vtk/libvtkjpeg.a
    ...

    Si quelqu'un avait un éclaircissement à me fournir sur comme y accéder, je suis preneur. M'ci !

  3. #3
    Membre confirmé
    Avatar de frifri59
    Inscrit en
    Décembre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Décembre 2009
    Messages : 98
    Points : 463
    Points
    463
    Par défaut
    Bonjour,

    Si tu veux savoir comment intégrer correctement ta bibliothèque, je te conseille ce lien.

    Par contre si tu compile à partir des sources, normalement tu as les headers dans les sources.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour cette réponse frifri.
    Je suis passé par là déjà, et les .h insérés, à la compilation, il me demandait forcément les .h inclus dans ceux que je venais d'insérer, et ensuite de suite pour finir par intégrer presque tous les .h des sources. Au final, j'ai eu droit à une jolie erreur de type incorrecte/non compatible. x_x

  5. #5
    Membre confirmé
    Avatar de frifri59
    Inscrit en
    Décembre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Décembre 2009
    Messages : 98
    Points : 463
    Points
    463
    Par défaut
    Je ne sais pas si c'est parceque c'est la fin de journée, mais je n'ai absolument rien compris à ce que tu as dis
    Si quelqu'un peux m'éclairer

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 609
    Points : 188 580
    Points
    188 580
    Par défaut
    Citation Envoyé par Furion Voir le message
    Au final, j'ai eu droit à une jolie erreur de type incorrecte/non compatible. x_x
    Si tu as des erreurs, nous ne pouvons pas les deviner ex nihilo. C'est malheureux mais aucun développeur ou magicien n'a pu nous trouver de solution à cet épineux problème.

    Aussi, quand tu parles de headers, dis aussi où tu les a pris et où tu les a jetés sans ménagement, ça pourrait être source de problèmes si tu les mets un peu n'importe où (l'idéal est de dire au compilateur où ils se trouvent, sans jamais les copier, du moins sous Windows ; sous *nix, tu as la belle commande make install qui s'occupe de tout).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/02/2007, 13h06
  2. Réponses: 6
    Dernier message: 04/02/2007, 10h55
  3. Intégration de fiche (comme favoris dans IE)
    Par matech dans le forum Langage
    Réponses: 3
    Dernier message: 03/03/2006, 11h22
  4. Réponses: 1
    Dernier message: 20/02/2006, 14h04
  5. [VB ou C++] intégration d'une page web dans une application
    Par devmat dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/10/2005, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo