Gå til innhold

noen spm til kompilering av programmer


Anbefalte innlegg

Hei!

 

har lurt på følgende ting:

 

1. når jeg tar ./configure legges det da til filer i filsystemet?

2. når jeg tar make, eller make install, legges det da til filer i filsystemet?

3. Hvor ligge evt disse filene?

4. Jeg har lastet ned tar.gz og pakket ut og tatt configure/make/make install,- så hvordan får jeg til å gjøre dette programmet kjørbar fra Kjør Kommando.

5. Kan mappen til programmet slettes uten å lage tull i dependencies?

 

Kommer ikke på fleire spm, men bare si noe viss det er noe jeg trenger å vite (=

 

takk for hjelpen!

Lenke til kommentar
Videoannonse
Annonse

man configure

 

man make

 

man make install

 

Lær deg å bruke manualsidene med en gang. De er der for at de skal leses.

 

Og ang. spørsmål 3, så velger du selfølgelig selv hvor du vil legge filene. Dette gjøres med 'prefix'PATH kommandoen. :)

 

Ellers, så synst jeg å huske at dette akkurat har vært oppe. Søk på forumet.

Endret av huf
Lenke til kommentar
1. når jeg tar ./configure legges det da til filer i filsystemet?

2. når jeg tar make, eller make install, legges det da til filer i filsystemet?

3. Hvor ligge evt disse filene?

4. Jeg har lastet ned tar.gz og pakket ut og tatt configure/make/make install,- så hvordan får jeg til å gjøre dette programmet kjørbar fra Kjør Kommando.

5. Kan mappen til programmet slettes uten å lage tull i dependencies?

1. Nei

2. make: nei, make install: ja (*)

3. De legges som regel i /usr/local (/usr/local/bin, /usr/local/man, /usr/local/lib osv). Det står som en del av teksten som kommer opp når du kjører make install (kjør make install 2>&1 |less)

4. Det må ligge et av stedene som står i PATH-variabelen for å være kjørbart fra "Kjør kommando." Hvis det ikke er det så er det et snodig program.. (*) (Du kan selvfølgelig finne ut hvor det ligger hen og legge til den katalogen i PATH, men dette skal ikke være nødvendig).

5. Mappen som inneholder kildekoden kan trygt slettes, ja. Men da kan du ikke kjøre "make uninstall" for å avinstallere det igjen.

 

(*) ./configure og make kan kjøres som vanlig bruker. make install _må_ kjøres som root, ellers blir ingenting installert. Jeg vil tippe at dette er grunnen til at det ikke fungerer: prøv å kjøre make install som root. Forøvrig blir heller ingenting installert dersom ./configure eller make får "errors."

 

Jøss, nå var jeg snill gutt.

Lenke til kommentar
Å kompilere er ein svært tungvindt måte å installere pakkar på, dei fleste distribusjonane har ferdigkompilerte pakkar.

 

Sånn i tilfelle du ikkje visste det :yes:

Er ikke alltid det er like gunstig å bruke ferdigpakker.

Av og til er det koselig å kunne legge inn små endringer selv på forhånd.

Både i ./configure og kildekoden. :)

Lenke til kommentar
Ja ikke sant? Når jeg skulle compile VerliHub og PHP 5 på 266 mhz boksen min :p

Aaaah, for en feeling!

 

:!:

Ble sittende oppe og stirre på skjermen hele natta da? :tease:

Men kompilering på utdaterte PC-er er litt småufint.

Som feks. på P75-en min.

Tar et halvt år å bare kompilere irssi...

Lenke til kommentar
hvordan legge jeg programmer i PATH?

Jeg vil tippe at det har skjedd noe galt på veien, det skal som sagt ikke være nødvendig å legge til noe ekstra i PATH for at et program skal kjøre (det er derfor man kjører make install - for at programmet skal bli kopiert til et forstandig sted).

 

(Ellers hadde femfulle et godt svar på spørsmålet ditt.)

Lenke til kommentar
man configure

 

man make

 

man make install

 

Lær deg å bruke manualsidene med en gang. De er der for at de skal leses.

Eller hva med

alias make="man make; man make; man make; make $@"

:p

Haha. Vet at to av de kommandoene ikke eksisterer. :wallbash: :!: Var litt rask i svingene der... Kanskje jeg skal lære meg manualsidene jeg også? :p

Lenke til kommentar
Jeg kjører Gentoo på to servere på henholdsvis 200 og 266MHz.

Kompilering er ikke noe problem der, muligens fordi jeg også kjører distcc som lemper en haug av arbeidet over på athlon-workstationen min.

Muligens...

 

Hvordan funker distCC? Har du en daemon som kjører på maskinene i "clusteret", som så kjører gcc på enkelt-filer, før alt sammen til slutt blir linket sammen lokalt på boksen som startet kompileringen?

Lenke til kommentar

Hver boks som deltar kjører en daemon (distccd).

Når en boks så kompiler så skjer all preprosessering lokalt siden det er avhengig av det lokale miljøet.

Når man da har en ren kildefil etter preprosessoren så sendes den til en av deltakerne, der den kompileres og returneres.

Siden en kildefil etter preprosessoren kun inneholder ren kode, ingen includes og slikt så skal resultatet bli det samme uansett hvor den kompileres.

Det eneste problemet som kan oppstå er inkompatibiliteter mellom ulike gcc-versjoner hvis man har det, men så langt har jeg ikke hatt noen problemer med det.

Make kan også kjøre flere uavhengige jobber samtidig (ved hjelp av -j-flagget), og på den måten kan flere deltakere få hver sin jobb samtidig.

Lenke til kommentar
Hver boks som deltar kjører en daemon (distccd).

Når en boks så kompiler så skjer all preprosessering lokalt siden det er avhengig av det lokale miljøet.

Når man da har en ren kildefil etter preprosessoren så sendes den til en av deltakerne, der den kompileres og returneres.

Siden en kildefil etter preprosessoren kun inneholder ren kode, ingen includes og slikt så skal resultatet bli det samme uansett hvor den kompileres.

Det eneste problemet som kan oppstå er inkompatibiliteter mellom ulike gcc-versjoner hvis man har det, men så langt har jeg ikke hatt noen problemer med det.

Make kan også kjøre flere uavhengige jobber samtidig (ved hjelp av -j-flagget), og på den måten kan flere deltakere få hver sin jobb samtidig.

Hva med optimalisering for forskjellige prosessorer? P3 P4, 286 osv?

Lenke til kommentar

De CFLAGS som er i bruk på pcen som skal ha jobber kompilert blir nok sendt videre, slik at jobbene blir kompilert med de samme optimeringene på de andre deltakerne.

Krysskompilering er ikke noe problem. Selv om jeg har en athlon så kan jeg legge -march=pentium4 i CFLAGS og da får jeg pentium4-optimerte filer, som ikke vil kjøre på min pc.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...