gpt4 book ai didi

c++ - 使用 std::vector 的链接错误

转载 作者:行者123 更新时间:2023-11-28 00:57:22 25 4
gpt4 key购买 nike


我在 vector 声明方面遇到问题。
代码如下:

.h

#ifndef ANIMATEDSPRITE_H_
#define ANIMATEDSPRITE_H_

#include "Sprite.h"
#include <vector>

//using namespace std;

class AnimatedSprite //abstract class to point sprites
{
public:
AnimatedSprite();
~AnimatedSprite();

//gets and sets
Sprite GetMySprite(int _index);
void SetSpriteToList(Sprite _sprite);
int GetState() const;
void SetState(int _state);

//other



private:
std::vector<Sprite> spriteList;

int state; //estado que esse sprite representa (parado esquerda, andando direita, etc)
};

#endif

.cpp

#include "AnimatedSprite.h"

AnimatedSprite::AnimatedSprite()
{
spriteList.clear();
state = NULL;
}

AnimatedSprite::~AnimatedSprite()
{

}

Sprite AnimatedSprite::GetMySprite(int _index)
{
return spriteList[_index];
}

void AnimatedSprite::SetSpriteToList( Sprite _sprite )
{
//Sprite* temp = new Sprite(1,2);
spriteList.push_back(_sprite);
}

int AnimatedSprite::GetState() const
{
return state;
}

void AnimatedSprite::SetState( int _state )
{
state = _state;
}

但我遇到了 2 个错误:

Error 1 error LNK2019: unresolved external symbol imp_CrtDbgReportW referenced in function "public: class Sprite & __thiscall std::vector >::operator[](unsigned int)" (??A?$vector@VSprite@@V?$allocator@VSprite@@@std@@@std@@QAEAAVSprite@@I@Z) AnimatedSprite.obj

Error 2 fatal error LNK1120: 1 unresolved externals C:\DevProjects\SDLSkeleton\Debug\SDLSkeleton.exe

我找到了从预处理器定义中删除 _DEBUG 的解决方案,但这样做似乎有点不对。
这是正确的解决方案吗?删除它的后果是什么?
在书和文档中我已经检查过它应该只是一个普通的变量声明,但是出现了这个错误。

谢谢。

最佳答案

这是因为您的构建不一致:您定义了 _DEBUG 宏,但链接到发布的 CRT 版本 (/MD)。因此,要么删除 _DEBUG,要么选择/MDd 选项。

关于c++ - 使用 std::vector 的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10401150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com