LNK2019未解析的外部

LNK2019 Unresolved Externals

本文关键字:外部 LNK2019      更新时间:2023-10-16

我有一些测试代码:

福.H

#ifndef FOO_H
#define FOO_H
void Foo(int iBar);
#endif FOO_H

傅.cpp

#include "foo.h"
void Foo(int iBar)
{
    // Do nothing...
}

主.cpp

#include "foo.h"
int main()
{
    Foo(1);
    return 0;
}

当我在VS2010中构建上述代码时,出现链接器错误:

错误 LNK2019:未解析的外部符号"void __cdecl Foo(int)"(?Foo@@YAXH@Z) 在函数 _main 中引用

我不知道为什么我的 Foo() 函数在链接时无法解析。谁能给我一些关于我可能做错什么的见解?

因此,经过一些反复试验,我通过将定义代码从 foo.cpp 移动到 foo.h 来成功构建我的代码。

无论出于何种原因,foo.cpp似乎并没有被绑定到foo.obj。我分别在log.h和log中声明和定义了全局日志记录实用程序函数.cpp就像我在上面的测试"foo"文件中一样,但是编译它们并将其链接到我的程序没有问题。我想知道我正在做什么,其中一个链接没有问题,而另一个无法识别 cpp 文件。