Hej,
Programuje już milion lat ale jakoś nie mogę zapamiętać jak takie problemy się rozwiązuje a są one strasznie czasochłonne i dobijające. A więc mam header i w nim zdefiniowane zmienne w namespace. No i taki header jest zlinkowany w milionach plików (oczywiście jest obarczony idfefem aby redefinicji nie było), no i niestety wywala błąd:
fatal error LNK1169: one or more multiply defined symbols found
Co ciekawe jak widać, nie wywala błędu dla zmiennych INFINITY i EPSILON. De facto te zmienne to stare zmienne, przed chwilą dodałem nowe i dla nich zaczął wywalać errory. Zrobiłem clean builda i to nie pomogło. Niestety nie pamiętam co takiego zrobiłem w przeszłości, że mi nie wywala dla INFINITY i EPSILONA. Za słaba pamięć mam, ale teraz obiecuje że zapisze sobie rozwiązanie.
#ifndef _CONST_
#define _CONST_
...
namespace d3d
{
const float INFINITY = FLT_MAX;
const float EPSILON = 1e-6f;//0.001f;
bool depthBias = false; //is device support depth bias or not
//const float DEPTHBIAS = -0.0005f;
//const float SLOPESCALEDEPTHBIAS = 1.0f;
D3DXMATRIX MatProj, MatProjZFight;
bool chuj;
...
#endif
//1>engine3D.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>engine3D.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>gui.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>gui.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>gui.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>gui.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>human.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>human.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>human.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>human.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>light.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>light.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>light.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>light.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>main.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>main.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>main.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>main.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>object.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>object.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>object.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>object.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>psystem.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>psystem.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>psystem.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>psystem.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>shader.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>shader.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>shader.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>shader.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>sound.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>sound.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>sound.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>sound.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>sprite.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>sprite.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>sprite.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>sprite.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>swAnimation.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>swAnimation.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>swAnimation.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>swAnimation.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>terrain.obj : error LNK2005: "bool d3d::c****" (?c****@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>terrain.obj : error LNK2005: "bool d3d::depthBias" (?depthBias@d3d@@3_NA) already defined in allocMeshHierarchy.obj
1>terrain.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProj" (?MatProj@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
1>terrain.obj : error LNK2005: "struct D3DXMATRIX d3d::MatProjZFight" (?MatProjZFight@d3d@@3UD3DXMATRIX@@A) already defined in allocMeshHierarchy.obj
fatal error LNK1169: one or more multiply defined symbols found//