Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt : 5.12.0 - Qt Creator : 4.8.0 - Qt Installer : 3.0.6 - JOM : 1.1.2 - QBS : 1.12.2

Installation bibliothèque GDCM pour Qt

October 2015 modifié dans Qt / Langage C++
Bonjour à tous,
Encore une installation de bibliothèque (peut être un jour vai-je devenir le spécialiste, enfin si j'arrive à en faire une un jour sans l'aide de Qt France ...)
En effet j'ai téléchargé les sources sur le site qui va bien : http://sourceforge.net/projects/gdcm/?source=typ_redirect
Je les ai compilé avec cmake (j'ai suivi ce tuto https://forge.imag.fr/plugins/mediawiki/wiki/camitk/index.php/GDCM), j'ai copié le tout dans un répertoire de Qt, en ajouter les LIBS et les INCLUDEPATH dans le .pro, et même j'arrive à faire un include, mais des que j'utilise la moindre fonction de la bibli GDCM, le programme plante au lancement. Qt me dis :
Démarrage de machin.exe...
Le programme s'est terminé subitement.
machin.exe a planté

qu'est ce que je fais mal ? un problème dans la config du cmake ? un LIBS+= quelque chose qui manque ? (pour info j'ai cherché tous les .dll.a de mon répertoire GDCM et je les ai tous ajouté).
Qu'ai je bien pu oublier ...???

A mon avis la solution est à la fin de cette page :
http://gdcm.sourceforge.net/wiki/index.php/Common_questions#How_do_I_use_GDCM_in_my_project_.3F
dans la section "How do I use GDCM in my project ?"
Hélas je comprend pas ce qu'ils veulent dire ...

Réponses

  • La question est: as-tu un message d'erreur plus clair. Car en rien les trois phrases suivantes incriminent ton usage de GDCM

    Démarrage de machin.exe...
    Le programme s'est terminé subitement.
    machin.exe a planté


    Je te conseille de vérifier ton code. Si le compile ne trouvait pas tes includes, il te dirait "gdcm.h not found".
    Si le linkeur avait des problèmes pour trouver la lib, il te dirait gdcm.dll not found ou symbol not found.

    Si tu n'as rien de tout cela. C'est que le problème est ailleurs.
    Peut-être que ton environnement de compil et d'execution est différent. Dans tous les cas, dependancy walker est ton ami. Sinon utilise gdb pour débugger.
  • machin.exe a planté

    qu'est ce que je fais mal ?
    mais comment veux-tu qu'on le sache ? :))
    Tu as probablement un pointeur non initialisé. Quant à savoir à quelle ligne, ça... Lance le débogueur.
  • October 2015 modifié
    Déjà merci de vos réponse.

    - J'ai tout recompilé en suivant :
    https://forge.imag.fr/plugins/mediawiki/wiki/camitk/index.php/GDCM),
    - J'ai refait le .pro en suivant :
    http://stackoverflowproxy.eu/questions/29292498/how-to-use-gdcm-in-qt
    - J'utilise le code suivant pour mon test :
    http://gdcm.sourceforge.net/html/gdcmvolume_8cxx-example.html

    Ca marche toujours pas .
    Je ne pense donc pas que ce soit une erreur de prog mais plutôt de lib
    Le message d'erreur est maintenant plus précis :
    ...main.cpp:-1: erreur : undefined reference to `vtkGDCMImageReader::New()'

    d'où le fait que je pense que la solution est à la fin de cette page :
    http://gdcm.sourceforge.net/wiki/index.php/Common_questions#How_do_I_use_GDCM_in_my_project_.3F
    dans la section "How do I use GDCM in my project ?"
    Hélas je comprend pas ce qu'ils veulent dire ...

    et je ne connais ni dependancy Walker ni gdb ... je regarderai ça. Mais si quelqu'un connait se undefined reference qui semble dire qu'il trouve mes .h mais les comprend mal ou les link mal, je suis prenneur.
  • Mouai donc une foi que le problème est précisément défini, plus personne n'a d'idée ? :D
    Help please I dont found :'(
  • Ok ok, vais me débrouiller.
  • Désolé de ne pas pouvoir aider,
    par contre cette lib nécessite la lib VTK pour utiliser la class vtkGDCMImageReader. Tu as bien compilé gdcm et linké avec VTK ?
  • j'ai déjà vtk mais linker 2 lib alors la je connais pas :s
  • Re coucou les gens,

    Vu le nombre de vue de cette discussion, on est pas seul a galérer ... personnellement j'en suis toujours au même point 2 mois plus tard, toujours dans l'impossibilité d'utiliser cette lib qui pour la peine sert juste à prendre de la place sur mon pc xD.
    Ayant réussi à installer vtk en 2h sur un autre pc je vai encore une foi essayer de recompiler GDCM, le recopier, refaire mes include dans le point pro, dans mes classes, et voir ce que cela donne...
    Mais bon je commence à avoir une idée du résultat à l'avance maintenant.
    Par contre baba tu parles de linker les lib ? Ca veu dire spéc ifier à GDCM où est VTK ???
  • Salut,
    d'après ce qui est dit sur le site de gdcm :
    The project vtkgdcm uses VTK, thus at link stage, it links vtkgdcm-debug.dll against some vtk***.dll files. Unfortunately, it doesn't take the input debug version of that VTK dlls. You will have then to provide the good version of the VTK input dll files.
    Mais si tu n'a pas besoin de ce projet, alors pas besoin de spécifier les dll vtk.
  • il semblerai que j'usse oublié ajout d'une lib dans le point pro. Je vous rassure, ca ne marche tjs pas, mais ça compile donc maintenant l'erreur peux venir de l'image que j'essai d'ouvrir ou du code utilisé mais la lib à l'air d'aller. Je creuse...
  • 2 ans et 4 mois après, cette problématique que j'avais mise de coté me revient en plein visage ...
    Vu que j'utilise vtk je vais essayer de compiler la lib GDCM linker avec la lib VTK avec cmake & mingw.
    En ajoutant ce qu'il faut dans le PATH et dans le .pro je croise les doigts ...
  • bon j'arrive à linker gdcm avec vtk en lui spécifiant le chemin de cette dernière dans le cmake ... après mon répertoire bin qui résulte de la compilation est vide donc il doit me rester un petit truc qui merde ...
  • voila, compilation faite avec cmake, il faut faire attention à la version de gdcm pour qu'elle soit compatible avec la version que l'on a de VTK, et a bien mettre à jour sa variable PATH !!!
    bon pour le moment mon soft compile mais s'il n'arrive pas a ouvrir la moindre image.
    Je réessaye avec les dernières version de VTK (8.1.1) et GDCM(2.8.6) toujours sur mon Qt5.3.2, avec VTK en compilation dynamique avec cmake (si quelqu'un passe par là, je ne sais pas comment on fait la compilation dynamique, Est-ce juste une casse a cocher ?) puis GDCM en le linkant à VTK.
    Si j'arrive à faire tout cela, tout comme pour VTK, je ferai un tuto step by step pour les neuneus comme moi ;)
  • Merci pour ton retour d'expérience.
Connectez-vous ou Inscrivez-vous pour répondre.