我搜索了错误 LNK2005“已在 .obj 中定义”,但找不到与我面临的特定问题相关的内容。希望有人可以帮助我...
我有一个标题foo.h
// foo.h
#ifndef FOO_H
#define FOO_H
void foo() {
print("foo\n");
}
#endif
和主文件... main.cpp
// main.cpp
#include <thread>
#include "foo.h"
int main() {
std::thread t(foo);
t.join();
return 0;
}
现在,它编译没有任何错误,并将给出的输出提供给控制台......
foo
但是如果我创建另一个文件foo.cpp并且只包含头文件foo.h而什么都不做......
// foo.cpp
#include "foo.h"
...我得到链接器错误 LNK2005 "void __cdecl foo(void)" (?foo@@YAXXZ) 已经在 main.obj 中定义
不知道这里出了什么问题。?!!