Пески Ссылка Ошибки - PullRequest
       3

Пески Ссылка Ошибки

0 голосов
/ 10 мая 2011

Я использую Visual Studio 2010 и считаю, что у меня проблема с настройками проекта. У меня есть заголовочный файл, в котором есть некоторые объявления:

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

Ответы [ 2 ]

4 голосов
/ 10 мая 2011

В вашем вопросе отсутствует важная часть.

У вас есть std::string* Definitions в заголовке, который вы забыли использовать extern с.

0 голосов
/ 10 мая 2011

У вас есть код (.h файл) внутри:

#ifndef DEFINITIONS_H
#define DEFINITIONS_H

#endif

чтобы не дать вам определить его несколько раз, если оно включено в нескольких местах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...