我的代碼在使用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;
}
感謝您的回覆。與提供該功能的庫鏈接是什麼意思? – nichus
您的項目(或您項目的某個依賴項)正在調用名爲'getFrequency'的函數,該函數由外部庫實現,這是您必須鏈接的庫。 –
那麼,我有一個文件Main.cpp,其中包含「Map_Operations.h」,並且我已經實現了「Map_Operations.cpp」,其中有函數getFrequency(); 那麼我該如何鏈接呢? – nichus