Gå til innhold

compilering, hva betyr egentlig det?


Anbefalte innlegg

Videoannonse
Annonse

Godt tenkt Velmont, når vi først er inne på det:

 

Hva skal til for at et program (eller f.eks. Linux) skal bli porta til en annen arkitektur? Er det kun eventuell assembly-kode i programmet som må byttes ut manuelt og kompilatoren fikser resten, eller er det mer enn så? Hvis det kun er assemblykode som må byttes ut: ville ren C kode kunne portes til en hvilken som helst arkitektur bare ved å forandre litt i Makefile'a? (forutsetter såklart at bilbliotekene koden benytter ikke bruker system-spesifikke kall)

 

Og hvorfor tar det så lang tid å porte f.eks. Windows XP til x86-64 i motsetning til Linux?

 

Og når vi først er inne på det: når fikk egentlig Linux ikke-eksperimentell x86-64 støtte? :)

Lenke til kommentar
Hva skal til for at et program (eller f.eks. Linux) skal bli porta til en annen arkitektur? Er det kun eventuell assembly-kode i programmet som må byttes ut manuelt og kompilatoren fikser resten, eller er det mer enn så? Hvis det kun er assemblykode som må byttes ut: ville ren C kode kunne portes til en hvilken som helst arkitektur bare ved å forandre litt i Makefile'a? (forutsetter såklart at bilbliotekene koden benytter ikke bruker system-spesifikke kall)

Dette varierer. Dyktige programmerere vil ofte lage kode som er enklere å porte. Assembly må alltid skrives om. I C kan man bruke preprosessoren for å sørge for at koden kompileres rett, for eksempel:

#ifdef PPC
Gjøre etellerannet
#else
Gjøre noe annerledes
#endif

 

 

Og ang. hvorfor Windows XP tok lengre tid å porte enn Linux: Som sagt lager dyktige programmerere mer portabel kode :cool:

Lenke til kommentar
Hva skal til for at et program (eller f.eks. Linux) skal bli porta til en annen arkitektur?

Store delar av eit operativsystem som Linux er av natur tett knytt til maskinvaren (tenk på drivarar). Men i prinsippet har du heilt rett: Eit program som er skrive i eit høgnivåspråk (frå C og oppover) kan kompilerast på ulike plattformar, medan eit assembly-program er arkitekturavhengig.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...