0

我有一些测试代码:

foo.h

#ifndef FOO_H
#define FOO_H

void Foo(int iBar);

#endif FOO_H

foo.cpp

#include "foo.h"

void Foo(int iBar)
{
    // Do nothing...
}

主文件

#include "foo.h"

int main()
{
    Foo(1);

    return 0;
}

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

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

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

4

1 回答 1

0

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

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

于 2013-10-02T22:36:26.883 回答