我得到以下的錯誤消息(有人隨意編輯不必要比特):C++「致命錯誤LNK1120」未解決的靜態類成員
1> FIXDecoder.obj:錯誤LNK2001:解析的外部符號「私人: 靜態類std :: unordered_map,類std :: allocator>,類 std :: basic_string,類 std :: allocator>,struct std :: hash,類 std :: allocator >>,struct std :: equal_to,class std :: allocator>>,class std :: allocator,class std :: allocator> const,class std :: basic_string,class std :: allocator >> >>> FD :: Fi xValueMappingsDict「 (?FixValueMappingsDict @ FD @@ 0V?$ unordered_map @ V $ $ basic_string @ DU?$ char_traits @ D @ std @@ V $ $ allocator @ D @ 2 @@ std @@ V12 @ U $ $ hash @ V'$ @的basic_string杜?$ @ char_traits @ d @@性病V'$ @分配器@ d @@ 2 STD @@@ 2 @ U&$ @ equal_to V'$ @的basic_string杜?$ @ char_traits @ d @性病@V?$分配器@ d @ @@ 2 STD @@@ 2 @ V'$分配器@ U&$對@ $$ CBV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ 2 @@ std @@ V12 @@ std @@@ 2 @@ std @@ A)
1> FD.obj:error LNK2001:無法解析的外部符號「private:static class std :: unordered_map,class std :: allocator>類 std :: basic_string,類 std :: allocator>,std :: hash,類 std :: allocator>>,struct std :: equal_to,class std :: allocator>> ,類std :: allocator,類 std :: allocator> const,class std :: basic_string,class std :: allocator >> FD :: FIXFieldNoDict「 (?FIXFieldNoDict @ FD @@ 0V?$ unordered_map @ V $ $ basic_string @ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ @ V12 U&$散列@ V'$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ 2 @@ STD @@@ 2 @ U&$ equal_to @ V'$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@@ 2 @ V'$分配器@ú ?$ pair @ $$ CBV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ V12 @@ std @@@ 2 @@ std @@ A)
1> C:\視覺工作室2012 \項目\ FD \ 64 \調試\ FD.exe:致命錯誤 LNK1120:2周解析的外部
此代碼:
//FH.h
#ifndef FD_H
#define FD_H
#include "FM.h"
#include <unordered_map>
#include <string>
class FD{
public:
FD();
FD(FM message);
~FD();
FD(const FD& tocopy);
FD& operator=(const FD& toassign);
private:
static unordered_map<string,string> FIXFieldNoDict;
static unordered_map<string,string> FixValueMappingsDict;
};
#endif
//FD.cpp
#include "FD.h"
#include "Mappings.h"
#include "Utils.h"
#include <vector>
#include <string>
#include <iostream>
#include <unordered_map>
using namespace std;
FD::FD(){
FIXFieldNoDict = Mappings::createFIXFieldNoDict();
FixValueMappingsDict = Mappings::getFIXValuesDict();
}
Mappings.h只是包含創建一個unordered_map
#ifndef MAPPINGS_H
#define MAPPINGS_H
#include <unordered_map>
#include <string>
using namespace std;
class Mappings{
public:
Mappings();
static unordered_map<string,string> createFIXFieldNoDict();
static unordered_map<string,string> getFIXValuesDict();
.
.
};
感謝您的!知道這是與靜態和翻譯單位有關! – user997112