Christian Larsen wrote:
> Hej NG!
>
> Jeg overvejer/er ved at skifte platform fra Windows til fortrinsvis Linux,
> og jeg er blevet fascineret af muligheden for at skrive programmer, som
> kan compile og køre på begge platforme.
Jeg forstår dine overvejselser
> Nu har jeg således været ved
> at researche lidt, hvorvidt det er muligt at benytte samme opsætning af
> projektet på tværs af systemerne, så jeg slipper for at vedligeholde to
> opsætninger, og jeg er nået frem til, at jeg nok skal kigge nærmere på
> "GNU Autotools" og "Cygwin" eller "Mingw32", men da jeg ikke er nogen haj
> (læs: totalt grøn) med hensyn til makefiler osv. vil jeg høre jer, hvad
> I har af ideer og erfaringer. Det er ikke større projekter vi snakker om
> (kun som hobby foreløbigt).
Hmm, det er to meget forskellige ting, men så lang tid at du holder dig
til std libs er det jo meget "let" at flytte kode mellem de to
platforme. Hvis du vil bruge Windows kald i din kode er du jo alligevel
låst til EN platform, og derfor wil der ikke være behov for flere make
mulighedder.
Forskellen mellem "cygwin" og "mingw32" er at cygwin er en unix
simulator (incl. libs), og MingW32 er en gcc (ld + make) for Win32 til
ren Win32 kode (just add win32 header filer).
Vil du lave "cross platform" kode ?
Hvilke slags projekter har du drømt om at realicerer ?
> Mine spørgsmål går fx på, om det er muligt at skrive et bundt
> kildefiler, hvor nogle dele kun benyttes i på én platform, således at
> jeg fx kan skrive specialiserede klasser til hvert system.
Ja da, gnu make har skal en masse platform specifikke variable
> Det er mit
> indtryk, at Cygwin nærmest laver et Unix-lag oven på Windows, men jeg
Yeps, det er rigtigt !
> vil også gerne fx kunne tilgå Windows API'en, så der er mulighed for
> optimering til det system. Windows-udgaven skal således helst ikke kræve
> samme placering af filerne som Linux-udgaven, hvor den eksekverbare fx
> ligger i /usr/local/bin eller lignende.
Hmm, man installerer ikke ting i /usr/local/bin når man laver hygge
projekter. Er der ikke noget med et installations program du snakker om
her ?
Hvis du laver Win32 kald, kan de ikke kører under linux og der er ingen
ide i at kører den på begge platforme. Men du nævner platform specifikke
code filer med classer der abstraherer sig dette væk, og det er
muligt, og ofte gjort !
> Jeg har prøvet at søge på opskrifter på at opsætte sådan et projekt,
> men jeg synes det er svært at finde noget, der er overskueligt. De fleste
> kilder er meget tekniske, men jeg har måske mest brug for et ganske lille
> eksempel-projekt, som jeg kan tage udgangspunkt i. Håber I kan hjælpe
> mig i gang ;)
Man kan jo prøve, men jeg tror lige vi skal bruge kræfter på at finde ud
af hvad du precis ønsker at opnå.
/BL