私はextern "C"機能を持つCPPを持っています。それらがすべて1つのファイルに含まれていれば、すべてがうまくいきます。私は機能を組織的な目的のために別々のファイルに分割したいと思っています。extern "C"を持つ2つのファイルのC++ lnk2005エラー?
は、だから私はこれらの2つのファイルを持って言うことができます:
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()
{
}
}
私も私の異なる順序でヘッダを含め再配置しようとした、としていますfile_tone.cppのインクルード以外のfile_one.cppにヘッダをインクルードしませんが、私はいつも同じエラーを受け取ります。
1)エラーLNK1169:1つの以上の多重定義されたシンボルは
2)エラーLNK2005が見つかりました:_MethodTwoはすでに正確に私が間違っているのは何
File_One.obj
で定義されていますか? 修正するにはどうすればよいですか?ありがとうございました!
通常、あるcppファイルを別のファイルに含めるのは良いことではありません。そうする場合は、インクルードされたcppファイルがコンパイルおよびリンクされていないことを確認する必要があります。 –
私はあなたの助言を取り、ヘッダーファイルを作りました。 –