Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Hvordan installere compiler - generell starthjelp


Anbefalte innlegg

Da virket det =) Måtte skifte mirror fire ganger før det funka, men da funka det. Så har jeg adda PATH til der hvor jeg la inn MinGW, regnet med jeg måtte gjøre dette også. Da hiver jeg meg i å prøve noen enkle programmer! :p

 

Foresten, litt OT, men funker for meg :p Jeg får seff kjørt programmene i cmd, men når jeg dobbeltrykker på .exe fila, forsvinner programmet med en gang. Prøvde på den cin.get() kommandoen, men det så ikke ut til å fungere. Andre forslag til hva jeg kan gjøre for å pause programmet etter det er ferdig?

Lenke til kommentar
Videoannonse
Annonse

Jeg er rimelig sikker på at du kompilerer på samme vis under Mac.

 

Jeg har skrevet C:\MinGW\bin\g++ -g -Wall kildekode.cpp -o program.exe men i realiteten kunne man under Windows ha skrevet C:\MinGW\bin\g++ -g -Wall kildekode.cpp -o program .. altså droppet .exe på slutten der. GCC "vet" at den skal legge til .exe automatisk - så om du dropper det gjør den dette under Windows, mens under Linux gjør den det riktige der også: chmod +x program. Tipper den gjør noe alá det samme på Mac siden Mac er basert på *nix.

 

edit:

Jeg kan godt sjekke med en bekjennt av meg om du lurer på hvordan GCC fungerer under Mac eller hvordan man installerer den der.

 

edit2:

Eller ønsker du å kryss-kompilere? ( http://en.wikipedia.org/wiki/Cross_compile ). Tror kanskje det er lettere å gjøre dette direkte på en Mac, eller v.h.a. emulering/virtualisering.

 

Jeg kjører f.eks. kun Linux som "native OS", og kjører i stedet WinXP under VMWare Player - som nå kan lastes ned og brukes gratis. Jeg har inntrykk av at dette er enklere enn å kryss-kompilere.

Endret av lnostdal
Lenke til kommentar

Hvis han/hun kan kjøre andre programmer som er laget for windows så er det ikke noe problem, men hvis ikke så må du kompilere for mac dvs. lage en egen exe(eller hva nå mac kjører) for mac.

 

Det kan hende du får problmere når du kompilerer hvis du har brukt windows funksjoner, men hvis du bare har brukt std. funksjoner burde du ikke få noen problemer.

Lenke til kommentar
Men om jeg (som sitter i windows) vil compilere et lite program jeg har laga til en kamerat (som sitter i mac/os), skriver jeg bare -o filnavn.app i tillegg når jeg skal compilere? Vil han kunne åpne og kjøre programmet mitt da?

6895445[/snapback]

 

nei, du må enten:

 

* kompilere prosjektet under mac med gcc der

..eller..

* kryss-kompilere (sjekk det forrige innlegget mit)

Lenke til kommentar

Ok, da prøver jeg å laste ned programvare slik at jeg kan compilere for han også (til mac os). Men betyr dette at den filen da kun vil fungere på mac os igjen? Eller vil den da fungere _både_ på mac os og windows? Funker det å lage program som fungerer på flere OS samtidig?

 

Dere har sikkert sagt det før, men den biten var litt uklar for meg..

Lenke til kommentar

En annen ting: Jeg bruker nå den compileren dere anbefalte meg (g++), kan jeg få denne til å compilere for mac os også, eller trenger jeg en ny compiler? Altså, vil det være så enkelt som å trykke feks -mac for å få compileren til å compilere for mac os ? Liksom bare en ekstra definisjon?

Lenke til kommentar
Ok, da prøver jeg å laste ned programvare slik at jeg kan compilere for han også (til mac os). Men betyr dette at den filen da kun vil fungere på mac os igjen? Eller vil den da fungere _både_ på mac os og windows? Funker det å lage program som fungerer på flere OS samtidig?

 

Dere har sikkert sagt det før, men den biten var litt uklar for meg..

6899659[/snapback]

 

Når man kompilerer C/C++-kode så får man binaries som kun fungerer på én enkelt platform. Derfor må man altså kompilere C/C++-koden flere ganger; en gang for hver platform man ønsker å ha binaries til.

 

Det finnes dog muligheter som f.eks.:

* http://llvm.org/

* http://www.winehq.com/

* http://en.wikipedia.org/wiki/Compatibility_layer

* http://www.freebsd.org/doc/en_US.ISO8859-1...k/linuxemu.html

o.s.v.

 

..men jeg synes ikke du skal tenke på det her i det hele tatt når du i stedet kan bruke biblioteker og kode som er portabel!

Endret av lnostdal
Lenke til kommentar
En annen ting: Jeg bruker nå den compileren dere anbefalte meg (g++), kan jeg få denne til å compilere for mac os også, eller trenger jeg en ny compiler? Altså, vil det være så enkelt som å trykke feks -mac for å få compileren til å compilere for mac os ? Liksom bare en ekstra definisjon?

6899710[/snapback]

 

Tror jeg har svart på dette før, men ok - kan gjenta det og forsøke å gjøre det klarere.

 

Ja, GCC fungerer på Mac også, men du kan stort sett _ikke_ bruke Windows eller Linux-"versjonen" av GCC til å produsere Mac-binaries ved å legge til en -mac-parameter ellernoe slikt. Det hele ser altså slik ut:

 

* GCC på Linux ---> Linux binaries/programmer

* GCC på Win32 ---> Win32 binaries/programmer

* GCC på Mac --> Mac binaries/programmer

 

Se: http://developer.apple.com/tools/gcc_overview.html

 

Her finnes det _også_ en litt "avansert" mulighet. Som du ser over så går det kun fra A --> A, men v.h.a. noe som kalles cross-compilation (jeg nevner noen linker om dette i et tidligere innlegg her) så kan man gå fra A --> B. (edit: man kan også kjøre MinGW under Wine, men "bedre" å bruke VMWare Player imho)

 

..men jeg synes heller ikke du skal tenke på dette, og i stedet også her konsentrere deg om å bruke portable biblioteker/kode/verktøy - for så å kompilere koden med en GCC-versjon som matcher platformen man er på for hver enkelt platform. Det er mye "sikkrere" og enklere.

 

Kort: gløm alt det her foreløpig, bruk i stedet portable:

 

* kompilere

* verktøy (scons)

* biblioteker (f.eks. gtk)

 

..noe som gjør at koden din (ikke binaries) altså blir portabel til andre platformer, slik at du siden kan kompilere koden din på hver av disse andre platformene og få binaries/programmer som fungerer på dem også.

Endret av lnostdal
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...