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

C++ Discussion :

compilation de l'exemple cpp de bibliotheque "libdash"


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut compilation de l'exemple cpp de bibliotheque "libdash"
    Bonjour,
    j'essai de compiler l'exemple de la bibliotheque libdash avec le systéme de construction de logicielles CMake(je travaille sur ubuntu 12.04 LTS 64 bits) ,le dossier de l'exemple contient le fichier CMakeLists.txt donc je suis placé dans ce dossier et et j'ai ercit la ligne de commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmake . -G"Unix Makefiles"
    cette insrtuction affiche le msg 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
    28
    (-- The C compiler identification is GNU
    -- The CXX compiler identification is GNU
    -- 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 include files CMAKE_HAVE_PTHREAD_H
    -- Looking for include files CMAKE_HAVE_PTHREAD_H - found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE
    CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE):
      Could NOT find LibAV (missing: LIBAV_ROOT_DIR LIBAV_INCLUDE_DIR
      LIBAV_AVCODEC_LIBRARY LIBAV_AVDEVICE_LIBRARY LIBAV_AVFILTER_LIBRARY
      LIBAV_AVFORMAT_LIBRARY LIBAV_AVUTIL_LIBRARY LIBAV_SWSCALE_LIBRARY)
    Call Stack (most recent call first):
      /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE)
      FindLibAV.cmake:198 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
      CMakeLists.txt:6 (find_package)
     
     
    -- Configuring incomplete, errors occurred! )

    et je ne trouve pas le fichier Makefile alors quand j'ai ecrit la ligne de commande:


    je trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.).
    est-ce quelqu'un peut m'aider svp

    Merci

  2. #2
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Bonjour

    Le message d'erreur de CMake est assez clair.
    Citation Envoyé par jeljeli Voir le message
    CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE):
    Could NOT find LibAV (missing: LIBAV_ROOT_DIR LIBAV_INCLUDE_DIR
    LIBAV_AVCODEC_LIBRARY LIBAV_AVDEVICE_LIBRARY LIBAV_AVFILTER_LIBRARY
    LIBAV_AVFORMAT_LIBRARY LIBAV_AVUTIL_LIBRARY LIBAV_SWSCALE_LIBRARY)
    A partir de là, comme CMake a échoué, ce n'est pas la peine d'essayer d'ignorer l'erreur et d'exécuter make avec le Makefile qui n'a pas été généré avec CMake.

    Tu peux installer le paquet libavcodec-dev avec aptitude ou autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aptitude update && aptitude install libavcodec-dev
    PS: Tu peux utiliser la balise quote (ou code) pour les logs.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    oui j'ai installé les bibliothéque manquante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    aptitude install libavdevice-dev
    aptitude install libavcodec-dev
    aptitude install libavfilter-dev 
    aptitude install libavswacale-dev
    et je trouve le makefile mais lorsque je compile avec la commande:
    je trouve un erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Scanning dependencies of target sampleplayer
    [ 11%] Building CXX object CMakeFiles/sampleplayer.dir/source/Input/MediaObject.cpp.o
    In file included from /home/jeljeli/libdash/libdash/sampleplayer/source/Input/MediaObject.cpp:12:0:
    /home/jeljeli/libdash/libdash/sampleplayer/source/Input/MediaObject.h:15:18: erreur fatale: IMPD.h : Aucun fichier ou dossier de ce type
    compilation terminée.
    make[2]: *** [CMakeFiles/sampleplayer.dir/source/Input/MediaObject.cpp.o] Erreur 1
    make[1]: *** [CMakeFiles/sampleplayer.dir/all] Erreur 2

  4. #4
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    J'ai pas eu ce souci en compilant la libdash. Mais j'ai l'impression qu'il ne s'agit pas du même projet. Peux-tu nous donner un lien vers ta libdash ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    c'est le meme lien que vous avez m'envoyé,mais mon probléme c'est la compliation de sampleplayer l'exemple de libdash(j'ai complié libdash sans probléme).
    j'ai resolu le probléme précendent en ajoutant les fichiers.h(qui sont situé libdash/libdash/libdash/include)dans le dossier Input(situé libdash/libdash/sampleplayer/source)
    mais lorsque j'ai utilisé le make j'ai pas trouvé le fichier executable et j'ai eu le msg d'erreur 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
     make
    Scanning dependencies of target sampleplayer
    [ 11%] Building CXX object CMakeFiles/sampleplayer.dir/source/Decoder/LibavDecoder.cpp.o
    [ 22%] Building CXX object CMakeFiles/sampleplayer.dir/source/sampleplayer.cpp.o
    [ 33%] Building CXX object CMakeFiles/sampleplayer.dir/source/Renderer/SDLRenderer.cpp.o
    [ 44%] Building CXX object CMakeFiles/sampleplayer.dir/source/Input/DASHReceiver.cpp.o
    [ 55%] Building CXX object CMakeFiles/sampleplayer.dir/source/Input/MediaObjectBuffer.cpp.o
    [ 66%] Building CXX object CMakeFiles/sampleplayer.dir/source/Input/MediaObject.cpp.o
    [ 77%] Building CXX object CMakeFiles/sampleplayer.dir/source/Input/AdaptationLogic.cpp.o
    [ 88%] Building CXX object CMakeFiles/sampleplayer.dir/source/Input/MultiThreading.cpp.o
    [100%] Building CXX object CMakeFiles/sampleplayer.dir/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp.o
    Linking CXX executable sampleplayer
    CMakeFiles/sampleplayer.dir/CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp.o: In function `main':
    CMakeCXXCompilerId.cpp:(.text+0x0): multiple definition of `main'
    CMakeFiles/sampleplayer.dir/source/sampleplayer.cpp.o:sampleplayer.cpp:(.text+0x0): first defined here
    /usr/bin/ld: cannot find -ldash
    collect2: ld a retourné 1 code d'état d'exécution
    make[2]: *** [sampleplayer] Erreur 1
    make[1]: *** [CMakeFiles/sampleplayer.dir/all] Erreur 2
    make: *** [all] Erreur 2
    est-ce que vous pouvez m'aider?

  6. #6
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Après la compilation de dash (make), as-tu fait un sudo make install ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    pour la compilation de libdash j'ai utilisé les commandes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sudo apt-get install git-core build-essential cmake libxml2-dev libcurl4-openssl-dev
    git clone git://github.com/bitmovin/libdash.git
    cd libdash/libdash
    mkdir build
    cd build
    cmake ../
    make
    et pour l'installation de sampleplayer ,je suis placé dans ce dossier (sampleplayer) et je suis crée un dossier build et j'ai ecrit les commandes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd build
    cmake ../
    make
    donc j'ai pas compris ou il faut utiliser

  8. #8
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Après le make de libdash.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    git clone git://github.com/bitmovin/libdash.git
    cd libdash/libdash
    mkdir build
    cd build
    cmake ..
    make
    sudo make install

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    j'ai reinstallé libdash mais lorsque j'ai ecrit :
    le resultat est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    make: *** Pas de règle pour fabriquer la cible « install ». Arrêt.

  10. #10
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Et que dit la documentation de libdash à propos de l'installation?
    Tu auras soit un fichier INSTALL à lire, soit un README, soit, plus simplement, ils doivent avoir un site web
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  11. #11
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    En effet c'est assez galère :s
    Le mieux est que tu copies :
    - les includes dans /usr/local/include/dash .
    - les bibliothèques (comme libdash.so) dans /usr/local/lib .

    À partir de là, tu copies l'exemple dans le répertoire de ton choix et tu réécrit le CMakeLists.txt afin de palier à ces problèmes :
    - Ajout de la macro add_definitions("-D__STDC_CONSTANT_MACROS") .
    - Ajout de C++11 pour remplacer Sleep : set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") .
    - Récupération correcte des sources, le file(GLOB_RECURSE sampleplayer_source *.cpp) actuel récupère les fichiers de CMake pour tester le compilateur (d'où le multiple definition of `main')

    Il faudra aussi modifier les sources : source/Decoder/LibavDecoder.cpp :
    - Remplacer Sleep de la ligne 217 par std::this_thread::sleep_for(std::chrono::nanoseconds(int((1 / (double)this->framerate) * 1000))); (non testé)
    - Ajouter #include <thread> et #include <chrono> .

    Le mieux est peut-être de faire un rapport de bug en leur proposant un make install et quelques petites modifications des CMakeLists.txt des exemples (et des codes pour qu'ils soient portables).

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    j'ai fais tout ces modification mais le probléme n'est pas resolu,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
    cmake_minimum_required(VERSION 2.8)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH})
     
    find_package(SDL REQUIRED)
    find_package(LibAV REQUIRED)
     
    include_directories(source)
     
    file(GLOB_RECURSE sampleplayer_source *.cpp)
     
    add_definitions("-D__STDC_CONSTANT_MACROS") 
    add_executable(sampleplayer ${sampleplayer_source})
    target_link_libraries(sampleplayer dash ${SDL_LIBRARY} ${LIBAV_LIBRARIES})
    mais j'ai eu le même message d'erreur

  13. #13
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Citation Envoyé par Ehonn Voir le message
    Récupération correcte des sources, le file(GLOB_RECURSE sampleplayer_source *.cpp) actuel récupère les fichiers de CMake pour tester le compilateur (d'où le multiple definition of `main')
    Tu devrait pouvoir t'en sortir avec un :
    file(GLOB sampleplayer_source *.cpp) .
    Sinon tu peux mettre les fichiers sources "à la main" dans la variable :
    set(sampleplayer_source sampleplayer_source.cpp fichier_src_0.cpp fichier_src_1.cpp fichier_src_....cpp)

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    voila les solutions à tout les problémes que j'ai eus:

    https://docs.google.com/file/d/1gWdk...QKw/edit?pli=1

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

Discussions similaires

  1. [VS.net] Forcer la compilation systematique d'un CPP
    Par Cédric_07 dans le forum MFC
    Réponses: 2
    Dernier message: 24/05/2005, 17h39
  2. [SOAP]Compilation du fichier stdsoap2.cpp (gSoap)
    Par Neo41 dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/02/2005, 14h55

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