Soulfly_tribe90 Posté(e) le 11 janvier 2010 Partager Posté(e) le 11 janvier 2010 Bonjour/bonsoir Je sais qu'on peut facilement faire un make avec qmake mais j'ai envie d'essayer cmake avec Qt maintenant que j'utilise cmake pour la plupart de mes projets. Donc j'ai un projet simple pour l'instant : dossier bin;headers;src et CMakeLists.txt : cmake_minimum_required(VERSION 2.6) project(ImageLoader) set(EXECUTABLE_OUTPUT_PATH bin/) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") find_package (Qt4 REQUIRED) include_directories ( headers ${QT_USE_FILE} ) file( GLOB_RECURSE source_files ./src/* ) add_executable ( ImageLoader ${source_files} ) target_link_libraries ( ImageLoader ${QT_LIBRARIES} ) Malheureusement cela me retourne cette erreur au moment de faire le make et je vois pas ce que j'ai oublié de faire : 0:21 nicolas@AuraHxC-Desktop ~/Programmation/imagerie% make [ 50%] Building CXX object CMakeFiles/ImageLoader.dir/src/imageViewer.cpp.o cc1plus: error: /usr/share/cmake-2.6/Modules/UseQt4.cmake: not a directory make[2]: *** [CMakeFiles/ImageLoader.dir/src/imageViewer.cpp.o] Erreur 1 make[1]: *** [CMakeFiles/ImageLoader.dir/all] Erreur 2 make: *** [all] Erreur 2 zsh: exit 2 make Une idée ? merci d'avance EDIT : Problème Résolu => Si quelqu'un est intéressé faudra me le dire Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 13 janvier 2010 Partager Posté(e) le 13 janvier 2010 Ben n'hésites pas à partager des connaissances. « Si tu ne sais pas : demande, si tu sais : partage ! » Lien vers le commentaire Partager sur d’autres sites More sharing options...
Soulfly_tribe90 Posté(e) le 13 janvier 2010 Auteur Partager Posté(e) le 13 janvier 2010 Voilà donc mon code qui fonctionne, par contre c'est un code qui fonctionne si votre projet n'a pas de besoin de compilation rcc et de fichier .ui => c'est juste une compilation basique Qt4 avec la subtilité du côté de la compilation moc. #Version Minimum utilisé cmake_minimum_required(VERSION 2.6) #Nom du projet project(ImageLoader) #Executable enregistré dans le dossier bin set(EXECUTABLE_OUTPUT_PATH bin/) #Ajout dans une variable des fichiers headers contenant #des slots ou la macro Q_OBJECT set(MOC_HEADERS ./headers/imageViewer.hpp) #Mets dans la variable CMAKE_MODULE_PATH les fichiers .cmake contenu #dans le dossier cmake/ (fichier Findx.cmake) #set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") add_definitions(-Wall) #Utilisation du module Qt4 de CMake find_package(Qt4 REQUIRED) #Ajout du dossier headers/ aux headers pour la construction include_directories(headers) #Ajout d'un fichier CMake, ici QT_USE_FILE include( ${QT_USE_FILE} ) #Creation du code moc avec les fichiers headers contenu #dans la variable MOC_HEADERS QT4_WRAP_CPP( MOC_OUTFILES ${MOC_HEADERS} ) #Chargement dans la variable source_file des fichiers #source contenu dans le dossier src/ file( GLOB_RECURSE source_files ./src/*.cpp ) #Ajout d'un executable du nom de ImageLoader construit #avec les sources contenu dans la variable source_files #et les fichiers moc_xxx contenu dans la variable MOC_OUTFILES add_executable ( ImageLoader ${source_files} ${MOC_OUTFILES} ) #liaison des librairies (ici librairie Qt) avec la cible #spécifié (ici ImageLoader) target_link_libraries ( ImageLoader ${QT_LIBRARIES} ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 13 janvier 2010 Partager Posté(e) le 13 janvier 2010 Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Soulfly_tribe90 Posté(e) le 13 janvier 2010 Auteur Partager Posté(e) le 13 janvier 2010 De rien si cela peut aider, j'ai pas mal galéré mais comme je voulais absolument savoir utiliser CMake (marre de faire des makefiles à la main) pour mes projets. Maintenant je sais très bien l'utiliser pour tout type de projet (Qt4, OpenGL, rajouter des librairies comme GLM, SFML etc...) et de plus je peux structurer mon code dans des dossiers ce qui me plait bien Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.