Question

Je suis en train de construire une solution avec 2 projets et obtenir ces messages d'erreur:

ColliderTest.obj: erreur LNK2028: jeton non défini (0A000080) "public: __thiscall Rect :: Rect (int)" (?? 0Rect @@ $$ FQAE @ XZ) référencé dans la fonction "vide __cdecl myFunction (void)" (? maFonction @@ $$ FYAXXZ)

ColliderTest.obj: erreur LNK2019: symbole externe non résolu "public: __thiscall Rect :: Rect (int)" (?? 0Rect @@ $$ FQAE @ XZ) référencé dans la fonction "void __cdecl myFunction (void)" (? maFonction @@ $$ FYAXXZ)

Le code:

  • Dans le projet "Collider" J'ai ces fichiers:

Collider.h

#pragma once

class Rect{

    int x;
    int y;
    unsigned int w;
    unsigned int h;

public:
    Rect(int x);
};

Collider.cpp

#include "Collider.h"

Rect::Rect(int x){
    this->x = x;
}
  • Le projet « ColliderTest » a une référence au collisionneur projet, et ce fichier:

ColliderTest.cpp

#include "../app/Collider.h"

void myFunction();

void myFunction(){

    Rect rect(4);
}

En outre, chaque projet a un fichier main.cpp avec une fonction main () vide, pour éviter le reproche de compiller sur le point d'entrée.

Était-ce utile?

La solution

Les deux projets ont une fonction principale?

Cela signifie que vous construisez deux exécutables. Executables généralement ne pas exporter les fonctions.

Vous avez besoin d'un exécutable et une bibliothèque de classes (dll).

BTW: Si vous une fonction principale vide, comment saurez-vous si votre programme RAN

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top