|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sat Apr 08, 2006 2:40 pm Post subject: gcc multiple definitions |
|
Kaarteejaa probleema:
Man atsevishkjos .cpp failos ir defineeti mainiigie ar vienaadiem nosaukumiem.
gcc izmet:(.bss+0x0): multiple definition of `g_pMainiigais'
Kaads nezin kaa tik valjaa no shitaa?Jo projektu taisu paraleeli Visual C++ un gcc,bet visual c++ taadu probleemu nav.
ZInu ka gcc tam taa jabut,bet varbuut ir kaads switch ar kuru sho gcc,manuprat, stulbo iipashiibu izsleegt.Ja tas nav iespeejams,tad naaksies mainiit lielu dalju koda,lai nosaukumi neatkaartotos.Meegjinaaju mekleet googlee, bet parasti visiem forumiem shii teema tika uzsaakta,bet atbilzhu nebija,vai tipa-jaa man arii taa bija, un nomainiiju nosaukumus. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Apr 08, 2006 6:38 pm Post subject: |
|
static keywords to dara - padara globālo mainīgo redzamu tikai tā .cpp faila ietvaros, kurā tas definēts.
Bet uzreiz saku - tas nav normāli, lietot vienādus nosaukumus globālajiem mainīgajiem dažādos failos. Jo taču var ar extern'u tikt klāt jebkuram mainīgajam no cita faila (ja vien tas nav static nodefinēts). Tad jau labāk salikt tos mainīgos neimspeisos (C++ tak programmējam galugalā!), vai vismaz kā klases statisko mainīgo, ja tas tur iederās (vai tik tev tur kautko līdzīgu singletonam nevajag?). Un galugalā - globālie mainīgie ir īvili, tas būtu jāzin katram programmētājam. Ar tiem var auzās iebraukt. |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sat Apr 08, 2006 8:46 pm Post subject: |
|
Protams,es tev pilniibaa piekriitu.Bet shii situaacija ir specifiska-visi mainiigie pilda vienu funkciju un namespace arii visiem ir viens.Bet taa tava ideja par static bija laba.Nebiju iedomaajies.
Un taatad nav nekaads switch,kas vareetu sho "fiichu" izsleegt?Nu ja nav,tad arii nevajag.Iztikshu ar static. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sat Apr 08, 2006 8:51 pm Post subject: |
|
elvman wrote: | Bet shii situaacija ir specifiska-visi mainiigie pilda vienu funkciju un namespace arii visiem ir viens. |
Nez, nez.. vienalga kautkā man liekas, ka tur kautkas nelabi ož ;)
Nezinu gan par nekādu switchu, man liekas, ka tāds switchs būtu pretdabīgi. Vai tad tas, ka visiem tāpat nodeklarētiem mainīgajiem jābūt publiski, tas nav intuitīvi?
imo, static (pie globālā mainīgā) jau tieši arī domāts šādiem mērķiem - noslēpt mainīgo. |
|
Back to top |
|
|
BHC
Joined: 31 Jan 2006 Posts: 81
|
Posted: Sat Apr 08, 2006 8:58 pm Post subject: |
|
elvman wrote: | Protams,es tev pilniibaa piekriitu.Bet shii situaacija ir specifiska-visi mainiigie pilda vienu funkciju un namespace arii visiem ir viens.Bet taa tava ideja par static bija laba.Nebiju iedomaajies.
Un taatad nav nekaads switch,kas vareetu sho "fiichu" izsleegt?Nu ja nav,tad arii nevajag.Iztikshu ar static. |
Globālajiem taisi vai nu klasi ar statiskajiem mainīgajiem un procedūrām, vai arī izmanto singletonu(ir vēl citas alternatīvas) - izmanto to, kura metode tev liekas pareizākā. Un, protams, izmantojam neimspiesus, kas atbrīvos no nosaukumu konfliktiem. _________________ Screenshot coming when hell freezes over. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|