我正在使用visual studio 2010,並相信我有一個項目設置問題。我有有一些聲明中有一個頭文件:Pesky鏈接錯誤
definitions.h
#include <string>
struct myStruct
{
std::string x[4];
std::string y[8];
};
void InitializeStructData();
extern myStruct data[12];
和cpp文件初始化我的結構:
definitions.cpp
#include "definitions.h"
#include <string>
mySturct data[12];
void InitializeStructData()
{
data[0].x[0] = "a";
data[0].x[1] = "b";
....
data[0].y[0] = "a";
....
....
data[11].y[7] = "done initializing"';
}
和我有一個窗體有一些按鈕和事物的文本我根據不同的情況從數組中填充:
myForm.cpp
#include "definitions.h"
...
//form initialization
只要我有兩個#include "definitions.h"
語句,我得到鏈接錯誤:
Error 1 error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > * Definitions"
Error 2 error LNK1169: one or more multiply defined symbols found
我真的不確定該函數是否需要初始化,我沒有在原始代碼中。這只是我試圖提出自己的解決方案。我很難過。 – JoLT 2011-05-09 22:15:52
你的測試用例顯然不是逐字的;錯誤與代碼不匹配,並且在'definitions.cpp'中有錯字。請製作一個適當的測試用例來證明問題。 – 2011-05-09 22:29:00
對不起,我只是想讓問題比我的實際代碼更清晰和更小。我會解決的。 – JoLT 2011-05-10 12:25:38