所以我在这里阅读了大多数关于这个错误的帖子,我仍然无法理解我的错误的原因。该项目由 2 个头文件以及 cpp 实现 + 主 cpp 文件组成。
DbApi.h 包含在 DbApi.cpp 中实现的函数的定义。Linker.h 包含 Source.cpp 调用的函数的定义,而 Linker.cpp 包含它们的实现,它们是从 DbApi.h 调用函数
链接器.h
#ifndef LINKER_DEFINED
#define LINKER_DEFINED
#include "DbAPI.h"
enum Short_Result_Code{...};
Short_Result_Code createNewCategory(string name, list <int> &Parents);
#endif
链接器.cpp
#include "Linker.h"
Short_Result_Code createNewCategory(string name, list <int> &Parents)
{
int RC = db::addCategory(name, Parents);
if(RC==0)
return OK;
else
return ERROR;
}
数据库API.h
#ifndef __dbAPI_H_INCLUDED
#define __dbAPI_H_INCLUDED
namespace db
{
int addCategory(string name, list <int> parents);
}
#endif
数据库API.cpp
#include "DbAPI.h"
namespace db
{
int addCategory(string name, list <int> parents)
{
// implementation
};
}
主文件
#include "Linker.h"
int main
{
list<int> A;
A.push_back(1);
A.push_back(2);
string d = "ABC";
createNewCategory(d, A);
}
错误:
错误 LNK2019:未解析的外部符号“枚举 Short_Result_Code __cdecl createNewCategory(class std::basic_string,class std::allocator >,class std::list > &)”(?createNewCategory@@YA?AW4Short_Result_Code@@V?$basic_string@DU ?$char_traits@D@std@@V?$allocator@D@2@@std@@AAV?$list@HV?$allocator@H@std@@@3@@Z) 在函数 _main F:\ AeroFS\Work\ETI\PDFAccess\PDFAccess\Source.obj PDFAccess
我在哪里弄错了?