Ошибка линковки уже определен
Есть три файла:
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