dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

gcc multiple definitions

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
BHC



Joined: 31 Jan 2006
Posts: 81

PostPosted: 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
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
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