我有一个带有外部“C”功能的 CPP。如果它们都在一个文件中,那么一切都很好。出于组织目的,我想将功能拆分为不同的文件。
所以假设我有这两个文件:
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_two.cpp 的包含之外,甚至在 file_one.cpp 中没有放置包含标头,但我总是遇到相同的错误。
1) 错误 LNK1169:找到一个或多个多重定义符号
2) 错误 LNK2005: _MethodTwo 已在 File_One.obj 中定义
我到底做错了什么?我应该怎么做才能修复它?
谢谢!