gpt4 book ai didi

c++ - 错误 LNK2019 : unresolved external symbol "" referenced in function

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:51 26 4
gpt4 key购买 nike

我目前在编译代码时遇到以下错误:

error LNK2019: unresolved external symbol "public: void __thiscall Agent::printSelf(void)" (?printSelf@Agent@@QAEXXZ) referenced in function "public: void __thiscall World::processMouse(int,int,int,int)" (?processMouse@World@@QAEXHHHH@Z) World.obj

这是我的代码

代理.h:

class Agent
{
public:
Agent();

void printSelf();

代理程序.cpp:

void Agent::printSelf()
{
printf("Agent species=%i\n", species);
for (int i=0;i<mutations.size();i++) {
cout << mutations[i];
}
}

GLView.cpp:

void GLView::processMouse(int button, int state, int x, int y)
{
if(world->isDebug()) printf("MOUSE EVENT: button=%i state=%i x=%i y=%i\n", button, state, x, y);

if(button==0){
int wx= (int) ((x-conf::WWIDTH/2)/scalemult-xtranslate);
int wy= (int) ((y-conf::WHEIGHT/2)/scalemult-ytranslate);

world->processMouse(button, state, wx, wy);
}

mousex=x; mousey=y;
downb[button]=1-state;
}


void World::processMouse(int button, int state, int x, int y)
{
if (state==0) {
float mind=1e10;
float mini=-1;
float d;

for (int i=0;i<agents.size();i++) {
d= pow(x-agents[i].pos.x,2)+pow(y-agents[i].pos.y,2);
if (d<mind) {
mind=d;
mini=i;
}
}
if (mind<1000) {
//toggle selection of this agent
for (int i=0;i<agents.size();i++) {
if(i!=mini) agents[i].selectflag=false;
}
agents[mini].selectflag= !agents[mini].selectflag;
agents[mini].printSelf();
setControl(false);
}
}

我很困惑。我已经很长时间没有处理这段代码了,所以我不确定是什么改变导致了这个。有没有人看到什么不对?

最佳答案

最可能的原因是您没有链接到从 Agent.cpp 创建的对象中。

你应该检查以确保它是项目的一部分,并且你使用的是正确的版本,也是用当前的编译器编译的(因为你说你已经有一段时间没有碰过它了,可能是对象是使用较早的编译器版本构建的,可能使它们不兼容 - 例如,不同的名称修改方法)。

尝试的第一件事(一旦您建立了所有正确的文件都在项目中)是完全清理和构建。

关于其他几点:

  1. 错误发生在 World::processMouse 中,这意味着 GLView::processMouse 的源代码可能不相关。

  2. 我发现您混合使用 printfcout 有点……令人不安。对于严肃的 C++ 编程,您可能应该避免使用 printf。它可以工作,但主要用于旧版 C 支持。

关于c++ - 错误 LNK2019 : unresolved external symbol "" referenced in function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035217/

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