2014-01-28 96 views
1

我的代碼在使用Visual Studio時適用於我的學校計算機,但只要我在我的計算機上使用Visual Studio 2012進行了嘗試,它也會編譯但在構建我時發生此錯誤項目:錯誤LNK2019:無法解析的外部符號unordered_map

Main.obj:錯誤LNK2019:無法解析的外部符號「類的std :: unordered_map,一流的std ::分配器>,INT,結構的std ::哈希類的std ::分配器>>,結構STD :: std :: allocator std :: allocator std :: allocator std :: allocator std :: allocator std :: allocator std :: allocator std :: allocator std :: allocator const std ::分配器,class std :: allocator>>,類std :: unordered_map,類std :: allocator>,int,struct std :: hash,類std :: allocator>>,struct std :: equal_to,cla ss std :: allocator>>,class std :: allocator,class std :: allocator> const,int>>>)「(?getFrequency @@ YA?AV?$ unordered_map @ V?$ basic_string @ DU?$ char_traits @ d @性病@@ V'$ @分配器@ d @@ 2性病@@胡?$ @哈希V'$ @的basic_string杜?$ @ char_traits @ d @@性病V'$ @分配器@ d @@ 2 @性病@@ @ 2 U&$ equal_to @ V'$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@@ 2 @ V'$分配器@ U&$對@ $$ CBV?$ basic_string的@ DU?$ char_traits @ d @ @@ STD V'$分配器@ d @ @@ 2 STD @@ H + STD @@@ 2 @@ STD @@ V'$ @矢量V'$ basic_string的@杜?$ @ char_traits @ d @@性病V'$ @分配器@ d @@ 2性病@@ V'$ @分配器V'$ @的basic_string杜?$ @ char_traits @ d @@性病V'$ @分配器D @ 2 @@ std @@@ 2 @@ 2 @ V12 @@ Z)在函數_main中引用 C:\ Users \ name.lastname \ Documents \ Visual Studio 2012 \ Projects [Cpp] Mapping \ Debug [Cpp]映射.exe:致命錯誤LNK1120:1個未解析的外部設備

由於它的工作原理我的學校計算機具有完全相同的代碼,我沒有給你代碼,因爲它非常重。我認爲問題是鏈接器看不到unordered_map類,我知道如何將庫添加到我的項目中,但不是這個特定的類。 任何想法?

評論如果你真的認爲代碼很重要。

在此先感謝!

編輯

這裏是我的Map_Operations.h文件,其中我宣佈getFrequency();方法:

#ifndef MAP_OPERATIONS_H_ 
#define MAP_OPERATIONS_H_ 

#include <string> 
#include <unordered_map> 
#include <vector> 

std::unordered_map <std::string, int> getFrequency(std::vector<std::string> FILE_CONTENT, std::unordered_map<std::string, int> MASTER_MAP); 

#endif /* MAP_OPERATIONS_H_ */ 

這裏是文件Map_Operations.cpp,我實現它:

#include "Map_Operations.h" 

#include <string> 
#include <unordered_map> 
#include <vector> 

using namespace std; 

unordered_map <string, int> getFrequency(vector<string> FILE_CONTENT, unordered_map<string, int> & MASTER_MAP){ 

unordered_map <string, int> MAP; 

// Iterate through the current file being copied and push_back all the words in the 
// DOCUMENTS_ALL vector and in the MAP to compute their frequency 
for(vector<string>::size_type j = 0; j != FILE_CONTENT.size(); ++j){ 

    string TEMP = FILE_CONTENT[j]; 

    unordered_map<string, int>::const_iterator MAP_CURRENT = MAP.find(TEMP); // Create iterator to know if the Key is in the MAP or not 
    unordered_map<string, int>::const_iterator MAP_MASTER = MASTER_MAP.find(TEMP); // Create iterator to know if the Key is in the MAP or not 

    if (MAP_CURRENT == MAP.end()){ // If not in the MAP add it without incrementing 
     MAP[TEMP] = 1; 
    }else{ // If it is in the MAP then increment and add it 
     MAP[TEMP] = MAP[TEMP]+1;   
    } 

    if(MAP_MASTER == MASTER_MAP.end()){ // If not in the MASTER_MAP then add it 
     MASTER_MAP[TEMP] = 1; 
    }else { // If already in it then increment counter 
     MASTER_MAP[TEMP] = MASTER_MAP[TEMP]+1; 
    } 
} 

return MAP; 

}

回答

1

的問題不在於unordered_map,問題是getFrequency

您必須鏈接到提供該功能的庫。

+0

感謝您的回覆。與提供該功能的庫鏈接是什麼意思? – nichus

+0

您的項目(或您項目的某個依賴項)正在調用名爲'getFrequency'的函數,該函數由外部庫實現,這是您必須鏈接的庫。 –

+0

那麼,我有一個文件Main.cpp,其中包含「Map_Operations.h」,並且我已經實現了「Map_Operations.cpp」,其中有函數getFrequency(); 那麼我該如何鏈接呢? – nichus

相關問題