Pages : 1
#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
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
A toute
Simon
http://simon-in-china.over-blog.com
"Me voici professeur Thibault, qu'avez vous découvert ?"
Hors ligne