main.cpp
#include "server.h"
void main()
{
}
packet.h
#pragma once
#ifndef _PACKET_H
#define _PACKET_H
..
#endif
server.h
#pragma once
#ifndef _SERVER_H
#define _SERVER_H
#include "packet.h"
..
#endif
Список ошибок:
Ошибка LNK2005 "public: virtual void __thiscall IncomingAuth::handler(class Parcer &)" (?handler@IncomingAuth@@UAEXAAVParcer@@@Z) уже определен в main.obj EmulatorTop C:\Users\Ilya\Documents\Visual Studio 2015\Projects\EmulatorTop\ThreadEvents\server.obj
Если изменить main, то компилируется.
main.cpp
#include "packet.h"
void main()
{
}
Компилятор выдает сообщения об ошибках специально для вас, чтобы вы их читали. Данное сообщение об ошибке, выдаваемое при линковке единиц компиляции, очень ясное: функция handler
определена в двух единицах компиляции.
Скорей всего она определена в заголовочном файле server.h
и при этом не является встраиваемой, то есть не имеет спецификатора функции inline
.
Либо уберите определение функции из заголовка, либо объявите ее со спецификатором inline
.
Имейте в виду, что хотя компилятор MS VC++ компилирует такое объявление функции main
, как
void main()
оно не соответствует стандарту C++. Согласно стандарту функция main
без параметров должна быть объявлена как
int main()
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В каких случаях программа при отладке выдаёт ошибку: vector iterator not dereferencable и как ее, примерно, можно исправить?
Есть QScrollAreaВ нее нужно засунуть n-ое количество виджетов так, чтобы все скролилось при нужде