Ошибка линковки уже определен

Есть три файла:

trans.h

#pragma once
#include <string>
#include <vector>

namespace trans
{
    std::string path;
    std::string installed_path;

    std::vector<std::string> data;

    bool update = false;
}

Already_installed_err.h

#pragma once
#include <msclr/marshal_cppstd.h>
//#include "trans.h"

namespace dbainstaller {
...

Main.h

#pragma once
#include <fstream>
#include "Already_installed_err.h"
#include <msclr/marshal_cppstd.h>
#include <direct.h>
#include <urlmon.h>
#include <vector>
#include <string>
#include <atlstr.h>
#include <tchar.h>
#include "trans.h"
#include "trans.h"

#pragma comment(lib, "urlmon.lib")

using std::vector;
using std::string;
...

И все компилируется, но стоит в Already_installed_err.h раскомментировать строчку

#include "trans.h"

Проект валится с ошибками:

1>Main.obj : error LNK2005: "bool trans::update" (?update@trans@@3_NA) уже определен в Already_installed_err.obj
1>Main.obj : error LNK2005: "class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > trans::data" (?data@trans@@3V?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@A) уже определен в Already_installed_err.obj
1>Main.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > trans::path" (?path@trans@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) уже определен в Already_installed_err.obj
1>Main.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > trans::installed_path" (?installed_path@trans@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A) уже определен в Already_installed_err.obj

Если из Main убрать #include "trans.h", не помогает. Я вроде посмотрел вопросы с такой же ошибкой, не могу найти что повторяется или где включается .cpp...

Весь проект: https://github.com/maksimkh34/dba_installer


Ответы (0 шт):