错误 21 错误 LNK2019:未解析的外部符号"公共:__thiscall

Error 21 error LNK2019: unresolved external symbol "public: __thiscall

本文关键字:错误 符号 thiscall 公共 外部 LNK2019      更新时间:2023-10-16

我不知道我的错误在哪里。我收到消息:

Error   21  error LNK2019: unresolved external symbol "public: __thiscall ParticleAnchoredSpring::ParticleAnchoredSpring(class Vector3 *,float,float)" (??0ParticleAnchoredSpring@@QAE@PAVVector3@@MM@Z) referenced in function "public: void __thiscall MyGameWorld::Initialize(void)" (?Initialize@MyGameWorld@@QAEXXZ)   C:UsersFoo NutsDropboxGSP321_DavidJohnsonGSP321_Johnson_HM2iLab2MyGameWorld.obj

函数声明:

ParticleForceRegistry registry;
ParticleAnchoredSpring spring(&Vector3(10, 3, 10), 10, 10);
registry.add(WMI->getListPtr()[0], &spring);

类定义:

class ParticleAnchoredSpring : public ParticleForceGenerator
{
protected:
    Vector3 *anchor;
    real springConstant, restLength;
public:
     ParticleAnchoredSpring(Vector3 *anchor, real springConstant, real restLength);
     virtual void updateForce(Particle *particle, real time);
};

构造函数声明:

void ParticleAnchoredSpring::updateForce(Particle *particle, real time)
{
Vector3 force;
particle->getPosition();
force -= *anchor;
real magnitude = force.magnitude();
magnitude = (restLength - magnitude) * springConstant ;
magnitude *= springConstant;
force.normalize();
force *= -magnitude;
particle->addForce(force);
}

您还没有实现构造函数。你只是声明了。添加:

ParticleAnchoredSpring::ParticleAnchoredSpring(Vector3 *_anchor, real _springConstant, real _restLength) 
: anchor(_anchor), springConstant(_springConstant), restLength(_restLength)
{
}

到您的实现文件。

我假设real被定义为float