繁体   English   中英

C ++无法解析的外部

[英]C++ unresolved externals

我正在写游戏,但遇到了导致“ C ++无法解析的外部条件”的问题

** 我的课程:**

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);
}

我的主体中有一个方法可以创建像素并将其存储在渲染和物理场中的矢量中。 我的问题是我需要访问像素内部的物理,地形和渲染,以便我的像素可以自行处理其碰撞和破坏,并从渲染和物理矢量中将其删除。

任何想法都可以实现,就像我尝试将指针传递给Pixel类时获得C ++无法解析的外部函数一样。 在编译器创建某些类之前可能会调用它们,但我不知道如何解决。

“外部问题未解决”是LINK TIME错误。 通常,您要做的就是在构建.exe之前确保已编译所有源代码并包括所有库。

例如,如果您使用的是MSVC ++,请确保您的项目包括terrain.cpp,PhysicsObject.cpp等。这同样适用于您用于构建项目的任何其他IDE或Makefile。

“未解决的外部条件”也可以视为编译器看到了声明,但没有看到定义。 这意味着它找不到您的.cpp文件。

他们属于另一个项目,并且您已经设置了一个新项目吗? 如果是这样,请将其从文件资源管理器拖放到VS中的“源”文件夹中。 您可以单击一个文件,然后在VS btw的属性中查看它的相对路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM