Ich habe nach dem Fehler LNK2005 "bereits in .obj definiert" gesucht, kann aber keinen Inhalt finden, der sich auf das spezifische Problem bezieht, dem ich gegenüberstehe. Hoffe jemand mir auf diesem helfen kann ...Multithreading-Funktion bereits in .obj definiert
habe ich ein Header foo.h
// foo.h
#ifndef FOO_H
#define FOO_H
void foo() {
print("foo\n");
}
#endif
und Hauptdatei ... main.cpp
// main.cpp
#include <thread>
#include "foo.h"
int main() {
std::thread t(foo);
t.join();
return 0;
}
Jetzt , kompiliert es ohne irgendein Fehler und gibt das gibt Ausgang zum cons ole ...
foo
Aber wenn ich eine andere Datei foo.cpp erstellen und umfassen nur den Header foo.h und nichts anderes tun ...
// foo.cpp
#include "foo.h"
... I Linker Fehler LNK2005 "void __cdecl foo (void)" (? foo @@ YAXXZ) schon in main.obj
Ich weiß nicht, was hier schief läuft.? !!
Verstanden! Vielen Dank. – chandr3sh