Русское сообщество по скриптингу

[C++]Как бороться с многократно определёнными символами?

Все вопросы по скриптингу для Metamod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для
Metamod.


Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник плагина.

[C++]Как бороться с многократно определёнными символами?

Сообщение Chuvi » 19 май 2013, 18:57

[spoiler]
Код: Выделить всё
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_Initialize)(struct cl_enginefuncs_s *,int)" (?cdll_Initialize@@3P6AHPAUcl_enginefuncs_s@@H@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_VidInit)(void)" (?cdll_HUD_VidInit@@3P6AHXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_Init)(void)" (?cdll_HUD_Init@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_Redraw)(float,int)" (?cdll_HUD_Redraw@@3P6AHMH@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_UpdateClientData)(struct client_data_s *,float)" (?cdll_HUD_UpdateClientData@@3P6AHPAUclient_data_s@@M@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_Reset)(void)" (?cdll_HUD_Reset@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_PlayerMove)(struct playermove_s *,int)" (?cdll_HUD_PlayerMove@@3P6AXPAUplayermove_s@@H@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_PlayerMoveInit)(struct playermove_s *)" (?cdll_HUD_PlayerMoveInit@@3P6AXPAUplayermove_s@@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "char (__cdecl* cdll_HUD_PlayerMoveTexture)(char *)" (?cdll_HUD_PlayerMoveTexture@@3P6ADPAD@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_IN_ActivateMouse)(void)" (?cdll_IN_ActivateMouse@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_IN_DeactivateMouse)(void)" (?cdll_IN_DeactivateMouse@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_IN_MouseEvent)(int)" (?cdll_IN_MouseEvent@@3P6AXH@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_IN_ClearStates)(void)" (?cdll_IN_ClearStates@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_IN_Accumulate)(void)" (?cdll_IN_Accumulate@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_CL_CreateMove)(float,struct usercmd_s *,int)" (?cdll_CL_CreateMove@@3P6AXMPAUusercmd_s@@H@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_CL_IsThirdPerson)(void)" (?cdll_CL_IsThirdPerson@@3P6AHXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_CL_CameraOffset)(float *)" (?cdll_CL_CameraOffset@@3P6AXPAM@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_CAM_Think)(void)" (?cdll_CAM_Think@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "struct kbutton_s * (__cdecl* cdll_KB_Find)(char const *)" (?cdll_KB_Find@@3P6APAUkbutton_s@@PBD@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_V_CalcRefdef)(struct ref_params_s *)" (?cdll_V_CalcRefdef@@3P6AXPAUref_params_s@@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_AddEntity)(int,struct cl_entity_s *,char const *)" (?cdll_HUD_AddEntity@@3P6AHHPAUcl_entity_s@@PBD@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_CreateEntities)(void)" (?cdll_HUD_CreateEntities@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_DrawNormalTriangles)(void)" (?cdll_HUD_DrawNormalTriangles@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_DrawTransparentTriangles)(void)" (?cdll_HUD_DrawTransparentTriangles@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_StudioEvent)(struct mstudioevent_s const *,struct cl_entity_s const *)" (?cdll_HUD_StudioEvent@@3P6AXPBUmstudioevent_s@@PBUcl_entity_s@@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_Shutdown)(void)" (?cdll_HUD_Shutdown@@3P6AXXZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_TxferLocalOverrides)(struct entity_state_s *,struct clientdata_s const *)" (?cdll_HUD_TxferLocalOverrides@@3P6AXPAUentity_state_s@@PBUclientdata_s@@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_ProcessPlayerState)(struct entity_state_s *,struct entity_state_s const *)" (?cdll_HUD_ProcessPlayerState@@3P6AXPAUentity_state_s@@PBU1@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_TxferPredictionData)(struct entity_state_s *,struct entity_state_s const *,struct clientdata_s *,struct clientdata_s const *,struct weapon_data_s *,struct weapon_data_s const *)" (?cdll_HUD_TxferPredictionData@@3P6AXPAUentity_state_s@@PBU1@PAUclientdata_s@@PBU2@PAUweapon_data_s@@PBU3@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_Demo_ReadBuffer)(int,unsigned char *)" (?cdll_Demo_ReadBuffer@@3P6AXHPAE@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_ConnectionlessPacket)(struct netadr_s const *,char const *,char *,int *)" (?cdll_HUD_ConnectionlessPacket@@3P6AHPBUnetadr_s@@PBDPADPAH@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_GetHullBounds)(int,float *,float *)" (?cdll_HUD_GetHullBounds@@3P6AHHPAM0@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_Frame)(double)" (?cdll_HUD_Frame@@3P6AXN@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_Key_Event)(int,int,char const *)" (?cdll_HUD_Key_Event@@3P6AHHHPBD@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_PostRunCmd)(struct local_state_s *,struct local_state_s *,struct usercmd_s *,int,double,unsigned int)" (?cdll_HUD_PostRunCmd@@3P6AXPAUlocal_state_s@@0PAUusercmd_s@@HNI@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_TempEntUpdate)(double,double,double,struct tempent_s * *,struct tempent_s * *,int (__cdecl*)(struct cl_entity_s *),void (__cdecl*)(struct tempent_s *,float))" (?cdll_HUD_TempEntUpdate@@3P6AXNNNPAPAUtempent_s@@0P6AHPAUcl_entity_s@@@ZP6AXPAU1@M@Z@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "struct cl_entity_s * (__cdecl* cdll_HUD_GetUserEntity)(int)" (?cdll_HUD_GetUserEntity@@3P6APAUcl_entity_s@@H@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_VoiceStatus)(int,int)" (?cdll_HUD_VoiceStatus@@3P6AXHH@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "void (__cdecl* cdll_HUD_DirectorMessage)(int,void *)" (?cdll_HUD_DirectorMessage@@3P6AXHPAX@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_GetStudioModelInterface)(int,struct r_studio_interface_s * *,struct engine_studio_api_s *)" (?cdll_HUD_GetStudioModelInterface@@3P6AHHPAPAUr_studio_interface_s@@PAUengine_studio_api_s@@@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_ChatInputPosition)(int *,int *)" (?cdll_HUD_ChatInputPosition@@3P6AHPAH0@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_ClientFactory)(char const *,int)" (?cdll_ClientFactory@@3P6AHPBDH@ZA) уже определен в client_mediator.obj
1>HL_Func.obj : error LNK2005: "int (__cdecl* cdll_HUD_GetPlayerTeam)(int)" (?cdll_HUD_GetPlayerTeam@@3P6AHH@ZA) уже определен в client_mediator.obj
1>     Создается библиотека D:\FreeLifePublic\my_server\Programs\ASI_Load_Test\Release\ASI_Load_Test.lib и объект D:\FreeLifePublic\my_server\Programs\ASI_Load_Test\Release\ASI_Load_Test.exp
1>D:\FreeLifePublic\my_server\Programs\ASI_Load_Test\Release\ASI_Load_Test.asi : fatal error LNK1169: обнаружен многократно определенный символ - один или более
1>
[/spoiler]

Что я не так делаю?
Последний раз редактировалось Chuvi 19 май 2013, 20:17, всего редактировалось 1 раз.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение pRoxxx » 19 май 2013, 20:10

Код: Выделить всё

#ifndef _BLA_BLA
#define _BLA_BLA
//определения

#endif

?
/watch?v=tSZxznUiJ24
Аватара пользователя
pRoxxx
 
Сообщения: 137
Зарегистрирован: 22 сен 2010, 12:21
Благодарил (а): 1 раз.
Поблагодарили: 21 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Chuvi » 19 май 2013, 20:17

pRoxxx, не помогало.
Решил проблему extern-ом. :)
Надеюсь заработает нормально.

Исходники пока что удалил.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Bos93 » 20 май 2013, 01:32

Не нужно объявлять в хедер файле переменные или функции,они должны быть extern

Ведь твои функции вызываются более одного раза,поэтому и переобъявление,не может ведь быть две одинаковые функции.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Mon[str] » 20 май 2013, 02:26

Bos93 писал(а):Не нужно объявлять в хедер файле переменные или функции,они должны быть extern

Ведь твои функции вызываются более одного раза,поэтому и переобъявление,не может ведь быть две одинаковые функции.

Объявлять то как раз таки нужно, а определять нет.
Аватара пользователя
Mon[str]
 
Сообщения: 1166
Зарегистрирован: 26 июл 2011, 12:12
Откуда: Россия -> Иркутская область
Благодарил (а): 99 раз.
Поблагодарили: 273 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
C++

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение TurangaLeela » 24 май 2013, 06:08

Не нужно объявлять в хедер файле переменные или функции,они должны быть extern
Ведь твои функции вызываются более одного раза,поэтому и переобъявление,не может ведь быть две одинаковые функции.

Совет дня - от профи :ROFL:
Chuvi
Не понимаю, 6 лет опыта работы с консольными приложениями - этож огромный багаж, как же про экстерн забыть мог ? о_О
Аватара пользователя
TurangaLeela
 
Сообщения: 930
Зарегистрирован: 24 авг 2010, 11:19
Откуда: Некрополь у Кремлёвской стены
Благодарил (а): 10 раз.
Поблагодарили: 266 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life
Valve Hammer Editor 3.5
C | C++ | Java

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Fedcomp » 24 май 2013, 07:37

Да врет он все про 6 лет, писал самые простейшие лабы вот и все.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Chuvi » 24 май 2013, 11:35

Fedcomp, про 6 лет не вру, просто раньше как-то всё в один файл запихивал.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Mon[str] » 26 май 2013, 10:30

Chuvi писал(а):Fedcomp, про 6 лет не вру, просто раньше как-то всё в один файл запихивал.

Большие программы что ли не писал?
Аватара пользователя
Mon[str]
 
Сообщения: 1166
Зарегистрирован: 26 июл 2011, 12:12
Откуда: Россия -> Иркутская область
Благодарил (а): 99 раз.
Поблагодарили: 273 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
C++

Re: [C++]Как бороться с многократно определёнными символами?

Сообщение Fedcomp » 26 май 2013, 12:56

Chuvi писал(а):Fedcomp, про 6 лет не вру, просто раньше как-то всё в один файл запихивал.

Fedcomp писал(а):писал самые простейшие лабы вот и все.

Из 6 лет, 3 года простоя (аккумулируемое время в течении которого ты почти ничего не писал в течении этих 6 лет), 1 год кое как писал проекты в 50 строчек, остальные два года простейшие консольные утилиты в один файл которые делают то что можно сделать другими вещами еще и проще. Так?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4