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

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    février 2015
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : février 2015
    Messages : 169
    Points : 60
    Points
    60
    Par défaut Problème lors de la compilation (C++ sous VS2015).
    Bonjour le forum C++.
    J'ai, comme le titre l'indique, un problème lors de la compilation de mes programmes C++ lorsqu'ils sont configurés pour être compilés en V140 :


    Un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
     
    int main ()
    {
          std::cout << "helloword" << std::endl;
          return 0;
    }
    me sors ce genre d'erreur :


    De plus, (si ça peux vous aider),
    j'ai voulu installer la librairie SFML (version 32 bits pour VS2015 donc), et il m'a sortit ce genre d'erreur :



    Erreurs qui ont disparues après avoir configuré mon projet pour être un projet VS2013 (avec SFML pour VS2013 du coups).

    Cela fait un moment que je cherches une solution pour palier à ce problème car j'utilise 2 Pc pour programmer et sur un ça fonctionne correctement mais il ne prends pas VS2013 (pas installé) donc je fais avec VS2015, et chaque fois que je change de Pc je dois changer ce paramètre pour compiler...

    Par avance merci.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2005
    Messages
    4 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : février 2005
    Messages : 4 730
    Points : 11 144
    Points
    11 144
    Par défaut
    Désolé pour le délai de réponse.

    bon, ça va être un peu technique.

    Première cas, vous incluez 2 fois la définition des mêmes fonctions, et en C et C++, c'est interdit.
    Le cas le plus simple, vous incluez deux versions incompatibles des fonctions de librairies proches (différentes C-Runtime, version de librairie utilitaires, etc...).
    Déjà, l'inclusion ce "cmath" (colonne fichier de la copie d'écran), ça sent pas la rose, car c'est l'utilisation de primitive mathématique du C dans du C++.
    Ça doit faire 15-20 ans que le C++ n'a plus besoin de ces "roulettes" pour avancer.
    Il y a donc de bonnes chances que d'autres fichiers, C++ eux, voir des réglages par défauts du compilateur, utilisent des déclarations C++ identiques que ce "cmath" antédiluvien. (Quelques using namespace foireux et la collision de nom de fonction est inévitable).

    Normalement, la fenêtre "Sortie" contient les vrais messages d'erreurs complets, indiquant les 2 fichiers .h qui ne peuvent pas être utilisés en même temps.
    Généralement, la correction des constantes de compilation devrait régler les problèmes pour que seul les fichiers d'en-tête contenant la bonne définition soient utilisés.
    Si vous êtes perdu dans les includes, utilisez l'option /P du pre-processeur pour voir d'où viennent les fichiers d'en-tête et quelle constantes de compilation les influences.
    https://msdn.microsoft.com/en-us/library/8z9z0bx6.aspx

    Pour le 2ème cas, SFML :
    Le comportement est tout à fait normal si l'on considère que votre SFML a été compilé pour utiliser la C-Runtime de VS2013 (qu'elle ait été compilé sous VS2015 ou VS2013 n'a pas d'importance, c'est la cible qui importe).
    La C-runtime fournie avec VS2015 a été expurgée de bon nombre les primitives dangereuses.
    Si votre SFML cible la C-Runtime VS2013, forcement, l'éditeur de lien couine.

    Pour votre problématique de double installation, vous pouvez peut-être vous servir efficacement d'outils de génération de fichiers solutions comme CMake.
    Il faut rationaliser votre environnement en choisissant vos cibles de compilation et faire autant de configuration de projet que de cibles nécessaires.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/09/2006, 10h24
  2. Problème lors de la compilation
    Par nicolas66 dans le forum C++
    Réponses: 9
    Dernier message: 25/07/2006, 22h32
  3. problème lors de la compilation : Unsatisfied symbols
    Par la schtroumpfette dans le forum C
    Réponses: 6
    Dernier message: 29/12/2005, 09h52
  4. Réponses: 7
    Dernier message: 27/09/2005, 21h40

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