我有一些测试代码:
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...
}
的main.cpp
#include "foo.h"
int main()
{
Foo(1);
return 0;
}
当我在VS2010中构建上述代码时,我收到链接器错误:
错误LNK2019:函数_main
中引用的未解析的外部符号“void __cdecl Foo(int)”(?Foo @@ YAXH @ Z)
我无法弄清楚为什么我的Foo()函数在链接时无法解析。任何人都可以给我一些关于我可能做错了什么的见解吗?
答案 0 :(得分:0)
因此,经过一些试验和错误后,我通过将定义代码从foo.cpp移动到foo.h来获得成功构建的代码。
无论出于何种原因,似乎foo.cpp没有被绑定到foo.obj。我有分别在log.h和log.cpp中声明和定义的全局日志实用程序函数,就像我在上面的测试'foo'文件中一样,但我编译并将它们链接到我的程序没有问题。我想知道我在做什么,有一个没有问题的链接,而另一个没有识别cpp文件。