Aller au contenu

[RÉSOLU][CMake] Soucis compilation code Qt4


Messages recommandés

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 :transpi:

EDIT : Problème Résolu => Si quelqu'un est intéressé faudra me le dire :ouioui:

Lien vers le commentaire
Partager sur d’autres sites

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

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 :francais:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...