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 :

Portage de Fedora à Ubuntu - Compilation échoue


Sujet :

C++

  1. #1
    Membre régulier

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Points : 100
    Points
    100
    Billets dans le blog
    1
    Par défaut Portage de Fedora à Ubuntu - Compilation échoue
    Bonjour à tous,

    j'ai un problème:
    Je suis en train de recompiler des programmes c++ que j'ai implémentés sous Linux/fedora il y a déjà quelques années. Actuellement, je travaille sur une autre machine et une autre distribution Linux/ubuntu.

    J'ai installé les bibliothéques nécessaires: STL et BoostGraph

    mais le compilateur me génère des erreurs que je comprends pas. Voici le début du message d'erreur que j'ai:


    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
     
     
    In file included from main.cpp:4:0:
    struct_graphe.h: In member function ‘void struct_graphe::detection_cycle_sous_graphe(std::fstream*, int, std::map<int, int>*)’:
    struct_graphe.h:459:59: error: no matching function for call to ‘std::set<boost::range_detail::integer_iterator<long unsigned int> >::insert(std::set<boost::range_detail::integer_iterator<long unsigned int> >::iterator, boost::iterators::detail::iterator_facade_base<boost::range_detail::integer_iterator<long unsigned int>, long unsigned int, boost::iterators::random_access_traversal_tag, long unsigned int, long int, false, false>::reference)’
                liste_noeuds2.insert(liste_noeuds2.end(), *v_it);
                                                               ^
    In file included from /usr/include/c++/5/set:61:0,
                     from typo.h:4,
                     from typo.cpp:2,
                     from regle.h:1,
                     from regle.cpp:1,
                     from ensemble_regles.h:1,
                     from ensemble_regles.cpp:1,
                     from main.cpp:1:
    /usr/include/c++/5/bits/stl_set.h:482:7: note: candidate: std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = boost::range_detail::integer_iterator<long unsigned int>; _Compare = std::less<boost::range_detail::integer_iterator<long unsigned int> >; _Alloc = std::allocator<boost::range_detail::integer_iterator<long unsigned int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<boost::range_detail::integer_iterator<long unsigned int> >; std::set<_Key, _Compare, _Alloc>::value_type = boost::range_detail::integer_iterator<long unsigned int>]
           insert(const value_type& __x)
           ^
    /usr/include/c++/5/bits/stl_set.h:482:7: note:   candidate expects 1 argument, 2 provided

    Avez-vous des idées comment puis-je résoudre mon problème?
    Merci

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    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 195
    Points : 17 163
    Points
    17 163
    Par défaut
    A priori, tu as changé de version de boost, et la BGL (en l'occurence) a du changé une partie de ses fonctions.
    Retourne lire la documentation, tu auras l'information.

  3. #3
    Membre régulier

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Points : 100
    Points
    100
    Billets dans le blog
    1
    Par défaut
    Merci pour votre réponse. Si c'est ça le problème. Y a t-il un moyen de forcer le compilateur à utiliser une ancienne version de BGL. Autrement: puis-je installer dans un dossier
    à part une ancienne version de Boost et l'utiliser pour compiler mes programmes. Car, revenir sur un code que j'ai écris en 2009/2010 n'est pas une chose facile pour moi actuellement.

  4. #4
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 053
    Points
    33 053
    Billets dans le blog
    4
    Par défaut
    A la seule lecture de l'erreur, qui est plutôt claire, ça apparait sur la ligne liste_noeuds2.insert(liste_noeuds2.end(), *v_it);, il te dit texto quel est le problème (lis-tu les messages d'erreur ?) candidate expects 1 argument, 2 provided et l'écriture de set::insert en utilisant le paramètre position est de toute façon quasi inutile. http://www.cplusplus.com/reference/set/set/insert/
    Tu préfèrerais pas corriger ton code plutôt que de continuer à compiler avec des libs préhistoriques et empêcher son évolution et maintenabilité ?

  5. #5
    Membre régulier

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Points : 100
    Points
    100
    Billets dans le blog
    1
    Par défaut
    Non, mais bien-sûr je préfère corriger mon code plutôt que de continuer à compiler avec des libs préhistoriques mais là, j'ai des priorités et ma priorité c'est de pouvoir utiliser mes exécutables. Après, je voudrai bien revoir le code et sa maintenabilité.
    Mais, de toute façon, comme vous le dites, la position d'insertion est optionnelle donc même si elle est indiquée ceci n'est pas le problème. C'est autre chose!!!

  6. #6
    Membre régulier

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Points : 100
    Points
    100
    Billets dans le blog
    1
    Par défaut
    Si vous avez d'autres idées, je suis prenante

  7. #7
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    bonjour tu as les anciennes versions de boost ici : http://www.boost.org/users/history/ si tu sais laquelle tu utilisais avant et si tu es pressée.....

  8. #8
    Membre régulier

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Points : 100
    Points
    100
    Billets dans le blog
    1
    Par défaut
    Merci

  9. #9
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 053
    Points
    33 053
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par nina2007 Voir le message
    la position d'insertion est optionnelle donc même si elle est indiquée ceci n'est pas le problème. C'est autre chose!!!
    A partir du moment où le message d'erreur très explicite te dit qu'il n'existe pas de version avec 2 paramètres mais qu'il en trouve une avec 1 paramètre... oui c'est le problème ici.
    Après tu as très certainement d'autres problèmes mais ça on ne peut pas le deviner par divination.

  10. #10
    Membre régulier

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Points : 100
    Points
    100
    Billets dans le blog
    1
    Par défaut
    oui il y a certainement d'autres problèmes. Je revois mon code!!!
    Merci à vous

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/05/2011, 07h59
  2. Mode Debug et cross-compilation, échoue avant le main
    Par ManusDei dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 16/03/2011, 11h47
  3. portage d'une appi compilé (incluant un activeX)
    Par megs dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2009, 13h32
  4. Compilation échouée
    Par champijulie dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 29/06/2005, 16h47

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