Pregunta

Estoy tratando de construir una solución con 2 proyectos y obtener estos mensajes de error:

COLLIDERTEST.OBJ: Error LNK2028: Token indefinido (0a00000080) "Público: __THIscall rect :: rect (int)" (? @@ $$ fyaxxz)

COLLIDERTEST.OBJ: Error LNK2019: símbolo externo no resuelto "Público: __THIscall rect :: rect (int)" (?? 0rect @@ $$ fqae@xz) referenciado en función "void __cdecl myFunction (void)" (? $$ fyaxxz)

El código:

  • En el proyecto "Collider" tengo estos archivos:

Colider.h

#pragma once

class Rect{

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

public:
    Rect(int x);
};

Colider.cpp

#include "Collider.h"

Rect::Rect(int x){
    this->x = x;
}
  • El proyecto "ColliderTest" tiene una referencia al colisionador del proyecto y este archivo:

Colidertest.cpp

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

void myFunction();

void myFunction(){

    Rect rect(4);
}

Además, cada proyecto tiene un archivo main.cpp con una función main () vacía, para evitar las quejas del Compilador sobre el punto de entrada.

¿Fue útil?

Solución

¿Ambos proyectos tienen una función principal?

Eso significa que está construyendo dos ejecutables. Los ejecutables generalmente no exportan funciones.

Necesita un ejecutable y una biblioteca de clase (DLL).

Por cierto: si tiene una función principal vacía, ¿cómo sabrá si su programa se ejecutó?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top