LNK2019再次解析外部符号

时间:2013-11-03 11:08:08

标签: c++ linker lnk2019

所以我在这里看到大多数关于这个错误的帖子,我仍然无法理解我的错误的原因。该项目包括2个头文件以及cpp实现+主cpp文件。

DbApi.h包含在DbApi.cpp中实现的函数的定义。 Linker.h包含Source.cpp调用的函数的定义,而Linker.cpp包含它们的实现,它们从DbApi.h调用函数

Linker.h

#ifndef LINKER_DEFINED
#define LINKER_DEFINED

#include "DbAPI.h"

enum Short_Result_Code{...};

Short_Result_Code createNewCategory(string name, list <int>  &Parents);

#endif

Linker.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;
}

DbApi.h

#ifndef __dbAPI_H_INCLUDED
#define __dbAPI_H_INCLUDED


namespace db
{
int addCategory(string name, list <int> parents);
}
#endif

DbApi.cpp

#include "DbAPI.h"

namespace db
{
    int addCategory(string name, list <int> parents)
 {
         // implementation
 };
 }

的main.cpp

#include "Linker.h"

int main
{
    list<int> A;
A.push_back(1);
A.push_back(2);
string d = "ABC";
createNewCategory(d, A);
}
  • 错误:

    错误LNK2019:未解析的外部符号“enum Short_Result_Code __cdecl createNewCategory(class std :: basic_string,class std :: allocator&gt;,class std :: list&gt;&amp;)”(?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

我在哪里弄错了?

1 个答案:

答案 0 :(得分:1)

看起来Linker.cpp的目标文件未包含在项目中