Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/05/2008, à 13:07

masterches

CMake - Compilation ITK

Bonjour,

Un petit topic pour reussir la compilation sur ITK avec l'outil CMake ou les compilateurs gcc | g++
qui pourra faire l'opbjet d'un tuto, sous ubuntu hardy 8.04.


~~~~~~~~~~~~~~~~
Compilation de source.cXX

gcc -I/usr/local/include/InsightToolkit -L/usr/local/lib -o executable source.c
g++ -I/usr/local/include/InsightToolkit -L/usr/local/lib -o executable source.cpp

donne des erreurs de chainage alors que les librairies/headers sont presents :
* /usr/local/include/InsightToolkit
* /usr/local/lib

Sur certains tuto on trouve les solutions à l'arrache pour remplir son Makefile :

C++ Compiler Flags (CXXFLAGS)
-I/usr/local/include/InsightToolkit/Common
-I/usr/local/include/InsightToolkit/IO
-I/usr/local/include/InsightToolkit/SpatialObject
-I/usr/local/include/InsightToolkit/Numerics
-I/usr/local/include/InsightToolkit
-I/usr/local/include/InsightToolkit/Algorithms
-I/usr/local/include/InsightToolkit/BasicFilters
-I/usr/local/include/InsightToolkit/Utilities/vxl/vcl
-I/usr/local/include/InsightToolkit/Utilities/vxl/core
-I/usr/local/include/InsightToolkit/Utilities/vxl/core/vnl
-I/usr/local/include/InsightToolkit/Utilities/itksys

Linker Flags (LDFLAGS)
-L/usr/local/lib/InsightToolkit

Librairies supplémentaires :

-lITKAlgorithms
-lITKBasicFilters
-lITKCommon
-lITKDICOMParser
-lITKEXPAT
-lITKFEM
-lITKIO
-litkjpeg
-lITKMetaIO
-litknetlib
-lITKNumerics
-litkpng
-lITKStatistics
-litksys
-litktiff
-litkvcl
-litkvnl_algo
-litkvnl_inst
-litkvnl
-litkzlib

celui pour lequel un :

g++ -I/usr/local/include/InsightToolkit/Common -I/usr/local/include/InsightToolkit/SpatialObject -I/usr/local/include/InsightToolkit/IO -I/usr/local/include/InsightToolkit/Numerics -I/usr/local/include/InsightToolkit -I/usr/local/include/InsightToolkit/Algorithms -I/usr/local/include/InsightToolkit/BasicFilters -I/usr/local/include/InsightToolkit/Utilities/vxl/vcl -I/usr/local/include/InsightToolkit/Utilities/vxl/core -I/usr/local/include/InsightToolkit/Utilities/vxl/core/vnl -L/usr/local/lib/InsightToolkit -lITKAlgorithms -lITKBasicFilters -lITKCommon -lITKDICOMParser -lITKEXPAT -lITKFEM -lITKIO -litkjpeg -lITKMetaIO -litknetlib -lITKNumerics -litkpng -lITKStatistics -litksys -litktiff -litkvcl -litkvnl_algo -litkvnl_inst -litkvnl -litkzlib -o executable source.cpp

marche sans bogues, notamment pour le itkjpeg, fait un grand signe de la main ...:o ...



Du coup on passe de suite  à l'outil CMake fourni par les mêmes d'ITK ... on suppose une install propre de ITK  (sans bogues de dependances ...)

*présent dans les depots standards : sudo apt-get install cmake

*Dans le dossier de la source source.cpp, on insère un fichier que l'on appellera "CMakeLists.txt", dans lequel on inserera le code :

#cmake_minimum_required(VERSION 2.4)
project (executable)
FIND_PACKAGE(ITK)
IF(ITK_FOUND)
  INCLUDE(${ITK_USE_FILE})
ELSE(ITK_FOUND)
  MESSAGE(FATAL_ERROR
          "ITK not found. Please set ITK_DIR.")
ENDIF(ITK_FOUND)
add_executable (executable source.cpp)
TARGET_LINK_LIBRARIES(transfo ITKCommon ITKIO libkivabien)

ITK_DIR est le repertoire d'installation de ITK, celui fourni lors de l'installation

la librairie libkivabien est à remplacer par ce que l'on veut en plus parmi  :
-ITKAlgorithms
-ITKBasicFilters
-ITKCommon : classique, les communs ... "itkImage.h" notamment
-ITKDICOMParser
-ITKEXPAT
-ITKFEM
-ITKIO : toutes les opérations de lecture ecriture ("itkImageFileReader.h", "itkImageFileWriter.h" ...Etc)
-itkjpeg
-ITKMetaIO
-itknetlib
-ITKNumerics
-itkpng
-ITKStatistics
-itksys
-itktiff
-itkvcl
-itkvnl_algo
-itkvnl_inst
-itkvnl
-itkzlib


...majuscules à verifier pourles temeraires ...

Puis on compile au choix :
*cmake ./ ou ccmake ./
le second propose d'autres options de compilation
*la commande precedente genere le Makefile qu'il faut
*puis un "make" genere l'executable demandé dans la commande add_executable du CMakeLists

Si on veut separer ses binaires, juste s'assurer que le CMakeLists et la/les sources sont dans le meme dossier; se deplacer dans son dossier binaire et faire simplement :

*cd bin/ && cmake $dir_source
où $dir_source vaut par exemple ../src

...en construction cool smileneutralsadbig_smileyikeswinkhmmtonguelolmadrollcool

Dernière modification par masterches (Le 25/05/2008, à 01:48)


Ubuntu 9.10/x86_64
http://masterches.blogspot.com/
"Men Moun Yo!"

Hors ligne

#2 Le 28/05/2008, à 17:14

Takahani

Re : CMake - Compilation ITK

Salut

ITK 3.2 est maintenant dans les dépots officiels d'ubuntu, plus besoin de le compiler à la main (super long !)

Un simple

sudo apt-get install libinsighttoolkit-dev libinsighttoolkit3.0 insighttoolkit-examples

évitera bien des misères ...

Après pour les vrais geek qui veulent avoir la toute dernière version, il faut récupérer la version cvs, puis dans le répertoire, un coup de

cmake .
make -j2
sudo make install

suffira normalement

Sinon pour le tuto, et utilisant tous les jours cmake, itk et vtk, je me disais aussi que ça pourrait être bien d'en faire un, et aussi de présenter certain soft comme l'excellent Paraview qui s'appuie sur vtk. En tout cas faire une petite partie présentant le développement en traitement d'image basé sur ces librairies dans la doc d'ubuntu ne ferait pas de mal, si tu commence je t'aiderai big_smile

A toute
Simon


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne