Vinnaren i pepparkakshustävlingen!
2017-09-12, 13:35
  #1
Medlem
Hej,

Nyss startat upp C-programmering igen och har installerat Cygwin.

När jag kompilerar for jag ut e a.exe. För några år sedan var det a.out som genererades.

Vad har hänt senaste åren?

Klagar inte såklart, asskönt att få ut en .exe
Citera
2017-09-12, 15:45
  #2
Medlem
kaks avatar
Citat:
Ursprungligen postat av Matte-fraga
Hej,

Nyss startat upp C-programmering igen och har installerat Cygwin.

När jag kompilerar for jag ut e a.exe. För några år sedan var det a.out som genererades.

Vad har hänt senaste åren?

Klagar inte såklart, asskönt att få ut en .exe

Kan inte minnas att jag fått någon a.out när jag använt Cygwin.
Har du några speciella skäl till att använda just Cygwin?
Citera
2017-09-12, 16:10
  #3
Avstängd
Kan inte heller minnas någon a.out. Den exekverbara filen ska gå att köra fint i Windows, t.ex. genom att dubbelklicka, så länge cygwin.dll går att hitta eftersom programmet beror på den.
Citera
2017-09-18, 03:11
  #4
Medlem
Citat:
Ursprungligen postat av Matte-fraga
Hej,

Nyss startat upp C-programmering igen och har installerat Cygwin.

När jag kompilerar for jag ut e a.exe. För några år sedan var det a.out som genererades.

Vad har hänt senaste åren?

Klagar inte såklart, asskönt att få ut en .exe

a.out är default filnamn på en exekverbar fil (program) som genererats av gcc-compilern (output) under Linux/Unix/*nix OS-serien. Det namnet skapades för att programmeraren var lat och skulle slippa att skriva ett namn på sitt program. Kompilatorn består av preprocessorn, compilern och länkaren.

Preprocessorn kör igenom alla headerfilerna, compilern översätter den sammansatta koden till objektkod (maskinkod för den aktuella CPU-arkitekturen). Länkaren sätter ihop objektkodsmodulerna ihop med eventuella libraries, dvs bibliotek, till ett exekverbart program.

gcc är både preprocessor, compiler och länkare i ett,

Ibland så på somliga *nix-system var man tvungen att ändra flaggorna för a.out att den fick exekveringsbehörigheter, ett jävligt irriterande slöseri med tid,

Ännu idag så genererar gcc en a.out om man inte annars har specificerat ett annat namn på den exekverbara filen.

Är det mera komplexa kompileringar man ska göra så skriver man makefiler istället som är som en batchfil som utför alla nödvändiga kommandon.

I de flesta *nix så kan exekverbara filer ha nästan vilka namn som helst, men förhoppningsvis så lär sig fler och fler att använda namnkonventioner istället för att låta den gamla *nix-anarkin råda.

a.exe däremot är däremot avsett att köras på Windows-maskiner, Äldre varianter av *.exe-filer var DOS-kompatibla, och kunde köras i DOS-läge, dvs utan grafiska egenskaper
__________________
Senast redigerad av DrSvenne 2017-09-18 kl. 03:16.
Citera
2017-09-18, 07:55
  #5
Moderator
RostigHinks avatar
Det kanske för historiens skull ska tilläggas att den Bell Labs C-kompilator som fanns före gcc även den spottade ut a.out
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback