Partage
  • Partager sur Facebook
  • Partager sur Twitter

Undefined symbols for architecture x86_64:

Sujet résolu
8 juin 2016 à 15:02:58

Bonjour,

Je suis sous mac, Xcode. Je suis le cours de Mateo, jusqu'à là tout marchait bien, mais depuis une heure j'ai une erreur dont je n'arrive pas à me défaire. Voici mon code (simplissime)

Vehicule.hpp

#ifndef Vehicule_hpp
#define Vehicule_hpp

#include <iostream>

class Vehicule
{
    public :
    void afficher() const;
    
    protected :
    int m_prix;
};

class Voiture : public Vehicule
{
    public :
    void afficher() const;
    
    private :
    int m_portes;

};

class Moto : public Vehicule
{
    public :
    void afficher() const;
    
    private :
    double m_vitesse;
};
#endif /* Vehicule_hpp */

Vehicule.cpp

#include <iostream>
#include "Vehicule.hpp"
using namespace std;

void Vehicule::afficher() const
{
    cout << "Ceci est un vehicule." << endl;
}

void Voiture::afficher() const
{
    cout << "Ceci est une voiture." << endl;
}

void Moto::afficher() const
{
    cout << "Ceci est une moto." << endl;
}

main.cpp

#include <iostream>

#include "Vehicule.hpp"

int main(int argc, const char * argv[]) {
    Moto vroum;
    vroum.afficher();
    return 0;
}

Et l'erreur est :

Undefined symbols for architecture x86_64:
  "Moto::afficher() const", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Merci de m'aider !



  • Partager sur Facebook
  • Partager sur Twitter
8 juin 2016 à 15:35:27

Erreur de link = fichier cpp non inclue dans le projet et donc non compile. Il faut ajouter Vehicule.cpp au projet. (Mais aucune idee comment faire avec XCode, je n'utilise pas trop)
  • Partager sur Facebook
  • Partager sur Twitter
8 juin 2016 à 22:59:59

Merci pour ta réponse, c'est effectivement quelque chose de ce genre là, même si je n'ai pas très bien réussi à comprendre ça marche.
  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2023 à 18:01:44

Je rencontre la même erreur en essayant de compiler via gcc sur MacOs aviez-vous trouver d'où venait votre problème ?

  • Partager sur Facebook
  • Partager sur Twitter
6 janvier 2023 à 18:03:28

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter