0

そのため、このエラーに関するほとんどの投稿をここで読みましたが、エラーの原因をまだ理解できていません。プロジェクトは、cpp 実装 + メイン cpp ファイルと共に 2 つのヘッダー ファイルで構成されます。

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

リンカー.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 >,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

これはどこで間違っていますか?

4

1 に答える 1

1

Linker.cppのオブジェクトファイルがプロジェクトに含まれていなかったようです

于 2013-11-03T11:19:50.613 に答える