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 d'un programme C++ sous Linux


Sujet :

C++

  1. #1
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    Janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : Janvier 2017
    Messages : 69
    Points : 0
    Points
    0
    Par défaut Compilation d'un programme C++ sous Linux
    Bonjour, j'ai ce code que je n'arrive pas à compiler sous Linux:

    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
    #include <iostream>
    #include <SFML/Audio.hpp>
    #include <SoundBuffer.hpp>
    #include <SoundBufferRecorder.hpp>
     
    using namespace std;
     
    int main(){
     
    if (!sf::SoundBufferRecorder::isAvailable()){cout<<"ERROR NO DEVICE FOUND";}
     
    sf::SoundBufferRecorder recorder;
     
    recorder.start();
     
    recorder.stop();
     
    const sf::SoundBuffer& buffer = recorder.getBuffer();
     
    return 0;}
    J'utilise la commande g++ cprogram.cpp -o cprogram, ce n'est visiblement pas la bonne, laquelle devrais-je plutôt utiliter ?

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut
    Il nous faut l'erreur retournée par le compilateur.
    Regardes déjà ici :
    https://www.sfml-dev.org/tutorials/2...t-linux-fr.php
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    Janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : Janvier 2017
    Messages : 69
    Points : 0
    Points
    0
    Par défaut
    Merci pour la réponse, je me suis contenté d'installer la bibliothèque avec apt-get install libsfml-dev, je pense devoir placer le fichier texte à l'endroit où elle se trouve, y aller avec l'invite de commande et faire g++ -c main.cpp puis g++ main.o -o -lsfml-audio, je ne sais pas où trouver la bibliothèque.

    Pour l'erreur j'ai ceci cprogram.cpp:3:35: fatal error: SoundBuffer.hpp: No such file or directory compilation terminated.

    Ajout: j'ai trouvé la bibliothèque et tenté de compiler le fichier texte en le mettant à différents endroits, dans le même fichier que celui de la bibliothèque, dans le fichier de la bibliothèque et dans quelques autres fichiers, rien n'a fonctionné, toujours le message d'erreur.

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Ubuntuhuit Voir le message
    g++ -c main.cpp puis g++ main.o -o -lsfml-audio
    Où se trouvent les include directory ? Les libs directory ? On peut link sfml audio sans sfml main ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    Janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : Janvier 2017
    Messages : 69
    Points : 0
    Points
    0
    Par défaut
    Dans les deux derniers includes du code j'ai remplacé les chevrons par des guillemets et recompilé en mettant le fichier texte dans /SFML/Audio l'exacte emplacement des includes SoundBuffer et SoundBufferRecorder, la première commande ne donne plus de message d'erreur, pour la deuxième commande g++ cprogram.o -o -lsfml-Audio j'ai ce message d'erreur:

    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
    sampling.o: In function `main':
    sampling.cpp:(.text+0x1c): undefined reference to `sf::SoundRecorder::isAvailable()'
    sampling.cpp:(.text+0x55): undefined reference to `sf::SoundRecorder::start(unsigned int)'
    sampling.cpp:(.text+0x64): undefined reference to `sf::SoundRecorder::stop()'
    sampling.cpp:(.text+0x73): undefined reference to `sf::SoundBufferRecorder::getBuffer() const'
    sampling.o: In function `sf::SoundBufferRecorder::SoundBufferRecorder()':
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderC2Ev[_ZN2sf19SoundBufferRecorderC5Ev]+0x15): undefined reference to `sf::SoundRecorder::SoundRecorder()'
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderC2Ev[_ZN2sf19SoundBufferRecorderC5Ev]+0x1a): undefined reference to `vtable for sf::SoundBufferRecorder'
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderC2Ev[_ZN2sf19SoundBufferRecorderC5Ev]+0x41): undefined reference to `sf::SoundBuffer::SoundBuffer()'
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderC2Ev[_ZN2sf19SoundBufferRecorderC5Ev]+0x67): undefined reference to `sf::SoundRecorder::~SoundRecorder()'
    sampling.o: In function `sf::SoundBufferRecorder::~SoundBufferRecorder()':
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderD2Ev[_ZN2sf19SoundBufferRecorderD5Ev]+0xe): undefined reference to `vtable for sf::SoundBufferRecorder'
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderD2Ev[_ZN2sf19SoundBufferRecorderD5Ev]+0x25): undefined reference to `sf::SoundBuffer::~SoundBuffer()'
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderD2Ev[_ZN2sf19SoundBufferRecorderD5Ev]+0x41): undefined reference to `sf::SoundRecorder::~SoundRecorder()'
    sampling.cpp:(.text._ZN2sf19SoundBufferRecorderD2Ev[_ZN2sf19SoundBufferRecorderD5Ev]+0x7c): undefined reference to `sf::SoundRecorder::~SoundRecorder()'
    collect2: error: ld returned 1 exit status

  7. #7
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Si SoundBuffer fait partie de SFML, pourquoi l'include n'est pas SFML/SoundBuffer ?

    Concernant la ligne de compilation, je ne sais pas si tu réalises que -o attend un nom de programme ? Ce qui fait que -lsfml-Audio est le nom de ton exécutable, pas une option de link.

  8. #8
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    Janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : Janvier 2017
    Messages : 69
    Points : 0
    Points
    0
    Par défaut
    Le include de SoundBuffer est sous forme d'un fichier texte .hpp dans /HFML/Audio, à propos du second point en incrémentant que le message d'erreur persiste tout de même ceci est-il plus correct g++ cprogram.o -o cprogram -lsfml-Audio ?

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    As-tu recherché un peu ou tu tentes juste au petit bonheur et à taton en espérant viser juste un jour ?
    En 0.2s sur Google je tombe sur ça https://courses.cs.washington.edu/co.../unix/g++.html et ce que tu montres ne ressembles en rien à ce qui est attendu qui d'après cette même page devrait être amha g++ -o cprogram -IPath/To/SFML cprogram.cpp -lsfml-audio ou pas loin, faut peut-être remettre dans l'ordre le tout.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Citation Envoyé par Ubuntuhuit Voir le message
    Le include de SoundBuffer est sous forme d'un fichier texte .hpp dans /HFML/Audio,
    Et bien fait un include de la forme #include <SFML/Audio/SoundBuffer.hpp>. Indiquer le chemin depuis le projet (SFML) et la bonne manière de faire. Déplacer un source parce que les includes ne sont pas trouvés est une mauvaise manière de procéder.

    En plus, le compilo dispose d'option pour indiquer les chemins d'inclusions.

    > à propos du second point en incrémentant que le message d'erreur persiste tout de même ceci est-il plus correct g++ cprogram.o -o cprogram -lsfml-Audio ?[/QUOTE]

    Oui, mais je doute qu'il y a un A majuscule.

    Comment à été installé la SFML ? Où se trouve libsfml-audio.so ?

  11. #11
    Débutant
    Homme Profil pro
    Ubuntu
    Inscrit en
    Janvier 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ubuntu

    Informations forums :
    Inscription : Janvier 2017
    Messages : 69
    Points : 0
    Points
    0
    Par défaut
    Merci beaucoup à tous effectivement maintenant tout fonctionne avec les includes de cette forme #include "SFML/Audio/xxxx" et la commande avec audio a minuscule.

  12. #12
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut
    Merci de marquer la discussion résolue si ton prob. est réglé.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

Discussions similaires

  1. compilation de programme C sous Linux
    Par fzh2014 dans le forum Linux
    Réponses: 4
    Dernier message: 10/05/2012, 18h56
  2. comment compiler un programme c sous linux?
    Par diengsallah dans le forum Linux
    Réponses: 11
    Dernier message: 13/09/2009, 08h57
  3. [Compilation Installation] Php avec apache sous linux
    Par c.tranquille dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/06/2006, 13h46
  4. [Forms 10g]Compilation de Forms 10 g sous linux
    Par lido dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h08
  5. Réponses: 2
    Dernier message: 25/10/2002, 22h19

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