класс — С ++ неразрешенные внешние

я пишу игру, и у меня возникла проблема в результате «C ++ unresolved externalters»

** Мои занятия:**

Terrain.h

Class Terrain
{};

PhysicsObject.h

Class PhysicsObject
{};

Physics.h

#include PhysicsObject
Class Physics : public PhysicsObject
{
public:
Physics();
void add(PhysicsObject* o);
void remove(PhysicsObject* o);
};

RenderObject.h

Class RenderObject
{};

Render.h

#include RenderObject.h
Class Render: public RenderObject
{
public:
Render();
void add(RenderObject* o);
void remove(RenderObject* o);
};

Pixel.h

#include "PhysicsObject.h"#include "RenderObject.h"
class pixel : public RenderObject, public PhysicsObject
{};

main.cpp

 #include "Physics.h"#include "Render.h"#include "Terrain.h"#include "Pixel.h"
void main()
{
Physics* physics
Render* render
Terrain* terrain

Pixel* pixel1 = new Pixel()

renderer->add(pixel1);
physics->add(pixel1);
}

У меня есть метод в моем главном, который будет создавать пиксели и сохранять их в векторах внутри рендера и физики. Моя проблема в том, что мне нужен доступ к физике, рельефу и рендеру внутри пикселя, чтобы мои пиксели могли самостоятельно обрабатывать столкновения и разрушения и удалять себя из векторов рендеринга и физики.

Любые идеи, как я могу достичь этого, как когда я пытался это сделать, я получаю неразрешенные внешние данные C ++, когда я передаю указатели в класс Pixel. Возможно, что некоторые классы вызываются до того, как они будут созданы компилятором, но я не знаю, как это исправить.

0

Решение

«Неразрешимое внешнее» — это ВРЕМЯ ССЫЛКИ ошибка. В общем, все, что вам нужно сделать, это убедиться, что вы скомпилировали весь свой исходный код и включили все свои библиотеки, прежде чем создавать .exe.

Например, если вы используете MSVC ++, убедитесь, что ваш проект включает terrain.cpp, PhysicsObject.cpp и т. Д. То же самое относится и к любой другой среде IDE или Makefile, которые вы используете для создания своего проекта.

1

Другие решения

«Неразрешенные внешние факторы» также можно увидеть, поскольку компилятор видел объявления, но не определения. Это означает, что он не может найти ваши .cpp файлы.

Они принадлежат другому проекту, а у вас есть новый? Если это так, перетащите их из проводника в «папку» Source в VS. Вы можете щелкнуть файл и увидеть его относительный путь в свойствах в VS кстати.

0

По вопросам рекламы [email protected]