错误 LNK2019:函数中引用未解析的外部符号" "
error LNK2019: unresolved external symbol "" referenced in function
当我编译我的代码时,我目前得到以下错误:
错误LNK2019:未解析的外部符号"public: void __thiscall Agent::printSelf(void)"(?printSelf@Agent@@QAEXXZ)在函数"public: void __thiscall World::processMouse(int,int,int,int)"中引用(? processMouse@World@@QAEXHHHH@Z) World.obj
我的代码
Agent.h:
class Agent
{
public:
Agent();
void printSelf();
Agent.cpp:
void Agent::printSelf()
{
printf("Agent species=%in", 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=%in", 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
创建的对象。
你应该检查确保它是项目的一部分,并且你使用的是正确的版本,也是用当前的编译器编译的(因为你说你有一段时间没有碰过它了,可能是这些对象是用早期的编译器版本构建的,可能会使它们不兼容——例如不同的名称混淆方法)。
要尝试的第一件事(一旦你已经在项目中建立了所有正确的文件)是一个完整的清理和构建。
关于其他几点:
-
错误发生在
World::processMouse
意味着GLView::processMouse
的来源可能无关 -
我发现你的混合
printf
和cout
稍微…令人不安。对于严肃的c++编程,应该避免使用printf
。
在Visual studio 2008中观察到同样的问题。Clean,然后是Rebuild .
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 错误 LNK2019:未解析的外部符号"外部"C"此错误是什么?
- 错误 : LNK2019: 未解析的外部符号"外部 "C"