я пишу игру, и у меня возникла проблема в результате «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. Возможно, что некоторые классы вызываются до того, как они будут созданы компилятором, но я не знаю, как это исправить.
«Неразрешимое внешнее» — это ВРЕМЯ ССЫЛКИ ошибка. В общем, все, что вам нужно сделать, это убедиться, что вы скомпилировали весь свой исходный код и включили все свои библиотеки, прежде чем создавать .exe.
Например, если вы используете MSVC ++, убедитесь, что ваш проект включает terrain.cpp, PhysicsObject.cpp и т. Д. То же самое относится и к любой другой среде IDE или Makefile, которые вы используете для создания своего проекта.
«Неразрешенные внешние факторы» также можно увидеть, поскольку компилятор видел объявления, но не определения. Это означает, что он не может найти ваши .cpp файлы.
Они принадлежат другому проекту, а у вас есть новый? Если это так, перетащите их из проводника в «папку» Source в VS. Вы можете щелкнуть файл и увидеть его относительный путь в свойствах в VS кстати.