Ich habe einen CPP mit externen "C" -Funktionen. Wenn sie alle in einer einzigen Datei sind, funktioniert alles super. Ich möchte die Funktionen nur für organisatorische Zwecke in verschiedene Dateien aufteilen.C++ lnk2005 Fehler auf zwei Dateien mit externem "C", warum?
können also sagen, ich habe diese beiden Dateien:
File_One.cpp
#pragma once
#include "stdafx.h"
#include <windows.h>
#include "Functions.h"
#include "Variables.h"
#include <string>
#include "File_Two.cpp"
extern "C"
{
__declspec(dllexport) void MethodOne()
{
MethodTwo();
}
}
File_Two.cpp
#pragma once
#include "stdafx.h"
#include <windows.h>
#include "Functions.h"
#include "Variables.h"
#include <string>
extern "C"
{
__declspec(dllexport) void MethodTwo()
{
}
}
Ich habe versucht, neu anordnen meine umfassen Header in unterschiedlicher Reihenfolge und sogar Platziere keine Include-Header in file_one.cpp außer dem Include für file_two.cpp, aber ich bekomme immer die gleichen Fehler.
1) Fehler LNK1169: ein oder mehr mehrfach gefunden definierte Symbole
2) Fehler LNK2005: _MethodTwo bereits in File_One.obj
definiertWas genau mache ich falsch? Was soll ich tun, um es zu beheben?
Vielen Dank!
Es ist normalerweise keine gute Sache, eine cpp-Datei in eine andere aufzunehmen. Wenn Sie dies tun, müssen Sie sicherstellen, dass die enthaltene cpp-Datei nicht kompiliert und verknüpft wird. –
Ich nahm Ihren Rat und baute eine Header-Datei und es hat funktioniert. –