IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Discussion :

Exemple avec CMake [Compilation]


Sujet :

Outils

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Exemple avec CMake
    Bonjour,

    Je suis sous Linux RHEL6, j'ai installé CMake 2.8.8 et QT 4.8.5.
    J'essaye de compiler l'un des exemples qt (/usr/local/Trolltech/Qt-4.8.5/examples/desktop/systray).
    Dans cet exemple il y'a les fichiers suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    systray/
    	main.cpp
    	systray.qrc
    	window.cpp
    	window.h
    	images/
    		bad.svg
    		heart.svg
    		trash.svg
    J'ai rajouté un fichier CMakeLists.txt et un répertoire build pour les fichiers résultats de cmake.

    Voici le fichier CMakeLists.txt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    cmake_minimum_required(VERSION 2.8)
     
    project("systray_project")
     
    FIND_PACKAGE(Qt4 REQUIRED)
    INCLUDE(${QT_USE_FILE})
    ADD_DEFINITIONS(${QT_DEFINITIONS})
     
    set(SOURCE_FILES window.cpp main.cpp)
    set(HEADER_FILES window.h)
    set(RESOURCE_FILES systray.qrc)
     
    QT4_WRAP_CPP(MOC_FILES ${HEADER_FILES})
    QT4_ADD_RESOURCES(RCC_FILES "${RESOURCES_FILES}")
     
    message("SOURCE_FILES : ${SOURCE_FILES}")
    message("HEADER_FILES : ${HEADER_FILES}")
    message("RESOURCE_FILES : ${RESOURCE_FILES}")
    message("MOC_FILES : ${MOC_FILES}")
    message("RCC_FILES : ${RCC_FILES}")
     
    include_directories("${CMAKE_CURRENT_BINARY_DIR}")
     
    add_executable(systray ${SOURCE_FILES} ${MOC_FILES} ${RCC_FILES})
     
    target_link_libraries(systray ${QT_LIBRARIES})
    Je lance la génération des Makefile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd systray/build
    cmake ..
    J'obtient le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    -- The C compiler identification is GNU 4.4.6
    -- The CXX compiler identification is GNU 4.4.6
    -- Check for working C compiler: /usr/bin/gcc
    -- Check for working C compiler: /usr/bin/gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Looking for Q_WS_X11
    -- Looking for Q_WS_X11 - found
    -- Looking for Q_WS_WIN
    -- Looking for Q_WS_WIN - not found.
    -- Looking for Q_WS_QWS
    -- Looking for Q_WS_QWS - not found.
    -- Looking for Q_WS_MAC
    -- Looking for Q_WS_MAC - not found.
    -- Found Qt4: /usr/local/Trolltech/Qt-4.8.5/bin/qmake (found version "4.8.5") 
    SOURCE_FILES : window.cpp;main.cpp
    HEADER_FILES : window.h
    RESOURCE_FILES : systray.qrc
    MOC_FILES : /systray/build/moc_window.cxx
    RCC_FILES : 
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /systray/build
    On peut voir que la macro QT4_ADD_RESOURCES ne me génère pas de fichier ressource.
    Et lorsque je lance la compilation, j'obtient l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [root@dev10 build]# make
    [ 25%] Generating moc_window.cxx
    Scanning dependencies of target systray
    [ 50%] Building CXX object CMakeFiles/systray.dir/window.cpp.o
    [ 75%] Building CXX object CMakeFiles/systray.dir/main.cpp.o
    [100%] Building CXX object CMakeFiles/systray.dir/moc_window.cxx.o
    Linking CXX executable systray
    CMakeFiles/systray.dir/main.cpp.o: In function `main':
    main.cpp:(.text+0x1c): undefined reference to `qInitResources_systray()'
    collect2: ld returned 1 exit status
    make[2]: *** [systray] Error 1
    make[1]: *** [CMakeFiles/systray.dir/all] Error 2
    make: *** [all] Error 2
    Voila, j'aimerais savoir pourquoi la macro de cmake ne me génère pas les fichiers nécessaire pour les ressources?
    Pour créer le fichier CMakeLists.txt je me suis inspiré du tutoriel suivant.

    J'ai testé la commande rcc directement sur le fichier qrc, cela semble fonctionner...le code généré apparaît bien dans le terminal.

    Merci d'avance pour votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Autant pour moi, c'était une erreur de nom de variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QT4_ADD_RESOURCES(RCC_FILES "${RESOURCES_FILES}")
    Désolé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compilation d'un exemple avec cmake
    Par ChipsterJulien dans le forum Boost
    Réponses: 0
    Dernier message: 19/03/2008, 17h16
  2. Problème avec cmake : signification d'une erreur
    Par G3G3 dans le forum Systèmes de compilation
    Réponses: 0
    Dernier message: 25/10/2007, 11h24
  3. [JDOM] simple exemple avec jdom
    Par fatenatwork dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/09/2007, 15h55
  4. [Lazarus] Exemple avec PostScriptCanvas ?
    Par pdufresn dans le forum Lazarus
    Réponses: 1
    Dernier message: 09/06/2006, 11h31
  5. [reseaux] exemple avec getopts
    Par perlaud dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 03/06/2004, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo