Здравствуйте.
Возникла следующая проблема с линковщиком
Есть следующая структура:
namespace trio
{
// {C2F91A8B-1521-43ae-B9B0-0C465E5E4792}
DEFINE_GUID(PIID_IClient,
0xc2f91a8b, 0x1521, 0x43ae, 0xb9, 0xb0, 0xc, 0x46, 0x5e, 0x5e, 0x47, 0x92);
}
namespace trio {
namespace plugin {
// {38C84EB9-9CDD-43d3-B0B7-59E25119B73B}
DEFINE_GUID(PIID_IClient,
0x38c84eb9, 0x9cdd, 0x43d3, 0xb0, 0xb7, 0x59, 0xe2, 0x51, 0x19, 0xb7, 0x3b);
}
}
Компилирутся все замечательно, а вот линковщик выдаёт следующее:
EmptyPlugin.obj : fatal error LNK1179: invalid or corrupt file: duplicate COMDAT '_PIID_IClient'
Нормальное ли это поведение линкера (использую MS C++.NET 2003)? Можно ли выкрутится из этой ситуации, оставив теже имена (я понимаю что если изменить имена то все будет ОК).
P.S. макрос DEFINE_GUID производит объявление примерно следующие: extern "C" const struct GUID PIID_IClient = {...,...,...}
Благодарю за любую информацию.
... << RSDN@Home 1.1.3 stable >>
А все просто. Ты дважды определил объект с одним и тем же именем, дело в extern "C" — тут тебе уже не помогает то, что они в пространствах имен..
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>А все просто. Ты дважды определил объект с одним и тем же именем, дело в extern "C" — тут тебе уже не помогает то, что они в пространствах имен..
Спасибо. Буду значит разные имена писать.
... << RSDN@Home 1.1.3 stable >>