error LNK2005: VC++ 6.0
Glad to greet!
Когда-то уже писал о данной проблеме, но сейчас снова выплыла.
Есть хидер (xxx.h), в котором определяется переменная и значение
(int i=1) или функция и реализация. Затем они include-ятся в другом
файле (yyy.h), который в свою очередь include-ится в 3-ем (zzz.h).
На этапе линковки вылезает такое вот сообщение:
"yyy.obj : error LNK2005: "int i" already defined in zzz.obj"
Естественно, в ххх.h стоят #ifdef-ы, так что подключение происходит
лишь единожды. Объявлять переменную как static не подходит,
поскольку в таком случае у каждого подключившего хранится своя
копия переменной, а не одна на всех (что меня несколько озадачило).
При указании /FORCE:MULTIPLE линкеру лезут warning-и, которые
pragma-ой не отключить, да и явно должен быть какой-то куда более
простой способ, однако моих поверхностных знаний с++ тут явно
недостаточно. Как с этим побороться? Заранее спасибо.
Alles Gute!
...In Code We Trust...