gcc, hva er forskjellene?

Kategori overført fra Linux1

gcc, hva er forskjellene?

Innleggav simen » man 22.01.2007 23:05

Heisann! Jeg har en gammel Mac, så er kanskje på feil sted men ingen Macere kan slikt veit dere :) Den kjører en gammel versjon av Mac OS X, versjon 10.2 kalt Jaguar. Denne kommer med en ganske gammel gcc så jeg har kompilert opp egen. Jeg tok den nyeste 3'ern jeg fant, 3.4.6 men jeg har funnet ut at denne sjeldent klarer å kompilere noe som helst. Versjonene jeg har:

gcc 3.1 og 3.3 fra Apple
gcc 3.3 egen kompilert fra Apple 3.1
gcc 3.4.6 egen kompilert fra gcc 3.3

Jeg har funnet ut at 3.3 til Apple og 3.4.6 egen kompilert funker ganske dårlig. Mens den egenkompilerte 3.3'en er bedre, selv om det er identisk versjon som den som fulgte med. 3.1 har jeg knapt brukt.

Hva er den "beste" versjonen av gcc i 3 versjonene? Som vil kompilere mest mulig? Hva er egentlig forskjellene på de forskjellige versjonene? Blir det bedre kode med ny gcc? Bugfix ser det iallefall ikke ut til å være, ser heller ut til å komme flere.

Jeg prøvde MySQL f. eks. Funka kun i min egenkompilerte gcc 3.3

Brukerens avatar
medlem i 250 måneder
 

Innleggav spacefly » man 22.01.2007 23:11

Ut fra signaturen din skulle du vel vite dette? ;)

Brukerens avatar
medlem i 212 måneder
 

Innleggav simen » man 22.01.2007 23:33

spacefly skrev:Ut fra signaturen din skulle du vel vite dette? ;)


Ååå så frekk :P Hehe :P

Brukerens avatar
medlem i 250 måneder
 

Innleggav TheHand » man 22.01.2007 23:43

Nyere gcc medfører av og til litt striktere krav til koden, men det er vel for det meste bugfixer og optimaliseringer.
GCC er vel på versjon 4.1 nå, er det noen grunn til at du følger 3.1 og 3.3?
medlem i 232 måneder
 

Innleggav simen » man 22.01.2007 23:48

TheHand skrev:Nyere gcc medfører av og til litt striktere krav til koden, men det er vel for det meste bugfixer og optimaliseringer.
GCC er vel på versjon 4.1 nå, er det noen grunn til at du følger 3.1 og 3.3?


Jeg hadde jo 3.4.6, den funka dårlig.

4 krevde noe ekstra saker som de kun ga ut som binærepakker, men det var ikke får mitt OS. cctools het det.

Åssen er 4 da? Er ikke jeg som skriver koden, og er seriøst ikke veldig interessert i å rette andre sin heller. Så jeg vil ha en versjon som funker til å kompilere med.

Debian stable bruker 3.3.5, er denne god?

Brukerens avatar
medlem i 250 måneder
 

Innleggav olear » man 22.01.2007 23:50

Anbefaler 3.4.6 eller 4.1.x. 3.3 (kjører fremdeles 3.3.3 på en maskin her) skal jo egentlig fungere fint det også, så lenge det er over 2.x ;)

Hvorfor det ikke fungerer til deg er noe annet, har dessverre ingen erfaring med MacOS + GCC.

Erfaren
Brukerens avatar
medlem i 227 måneder
 

Innleggav ak » man 22.01.2007 23:56

GCC versjoner er akkurat som vin og årganger, noen er bedre enn andre, men du kan ikke se det på tallet.

Men, i likhet med de fleste programvareprosjekter, så øker GCC i størrelse over tid. Resultatet er ofte mer optimalisert maskinkode, men det tar gjerne lenger tid å kompilere den, og (ironisk nok) det er ikke alltid at mer optimalisert kode faktisk kjører raskere til slutt. Det samme gjelder kompatibilitet, noen ganger blir gcc mer tolerant på noen områder, andre ganger blir den strammet inn på andre for å unngå tvetydige situasjoner.

Hvis du vil ha minst mulig problemer så bør du bruke samme kompilator som de som skriver koden (gå på mailinglisten og spør). Distribusjoner lager ofte små patcher som fikser koden for den kompilatoren som de har valgt, dette arbeidet må du kanskje gjøre selv.

4.1-serien begynner å bli relativt utbredt, ellers var det mange som brukte 2.9-serien leeeenge og noen sverger fortsatt til den, men da kan man fort få trøbbel med nyere C++ syntax.

Administrator
Brukerens avatar
medlem i 236 måneder
 

Innleggav simen » tir 23.01.2007 0:08

olear skrev:Anbefaler 3.4.6 eller 4.1.x. 3.3 (kjører fremdeles 3.3.3 på en maskin her) skal jo egentlig fungere fint det også, så lenge det er over 2.x ;)

Hvorfor det ikke fungerer til deg er noe annet, har dessverre ingen erfaring med MacOS + GCC.


Funker jo. Kompilerte vel nano og tcsh 6.12.00 med 3.4.6. Men MySQL 5.0.33 ville den ikke ta. Hakke så sjekket så mange pakker ennå. Men min egenkompilerte 3.3 ser ut til å ta det meste. Apple sin gcc 3.3 ville heller ikke kompilere 3.4.6 eller 3.4.4 eller 3.4, men den jeg kompilerte selv funka på 3.4.6 (sjekka ikke her på de andre).

Rare greier den derre gcc'en :)

Brukerens avatar
medlem i 250 måneder
 

Innleggav olear » tir 23.01.2007 0:47

Da må det være MacOS spesifike bugs, sitter selv på helt standard 3.3.3 og 3.4.6. Absolutt alt kompilerer 100% her (ingen patcher eller lignende). Det er også mulig du trenger div patcher til MySQL eller lignende for å få det til å kompilere(?).

Erfaren
Brukerens avatar
medlem i 227 måneder
 

Innleggav ak » tir 23.01.2007 0:50

Eller PPC, selv om det egentlig virker litt rart.

Administrator
Brukerens avatar
medlem i 236 måneder
 

Innleggav simen » tir 23.01.2007 1:14

ak skrev:Eller PPC, selv om det egentlig virker litt rart.


Kan prøve med noe mere programmer. Men hvorfor er det så forskjell på Apple's 3.3 og min 3.3? Nekter å tro at jeg er smartere enn Apple :P Og at Apple gjør det feil.

Brukerens avatar
medlem i 250 måneder
 


Returner til Utvikling i Linux



Hvem er i Forumene

Registrerte brukere: Ingen registrerte brukere