【发布时间】:2013-06-06 18:40:15
【问题描述】:
我目前在编译代码时遇到以下错误:
错误 LNK2019:函数“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);
}
}
}
我很困惑。我很长时间没有处理这个代码了,所以我不确定是什么导致了这个。有人看出什么不对了吗?
【问题讨论】:
-
您是否正在编译和链接
cpp文件?类定义是否有效?我没有看到任何右括号。 -
Visual Studio 不稳定。有时,“全部重建”可以解决问题,因为增量重新编译并没有重建它应该重建的东西。 make
Agent.cpp实际上是在项目中,而不仅仅是目录中的一个文件。 -
请您发布 World::processMouse 代码吗?
-
我添加了正确的 processMouse 方法
标签: c++ visual-c++ unresolved-external