Opsætning af C/C++ Compiler i Windows Vista

Går du og kigger lidt efter en C/C++ compiler i Windows Vista, så findes den som standard ikke i systemet. Som det første tænker man så, at man skal til at finde en tredjeparts compiler til formålet, men dette er ikke nødvendigt. Til Vista, findes nemlig også en SDK, som indeholder mange forskellige udviklingsværktøjer. I blandt disse finder vi også en C/C++ compiler. Så ligesom man installerer JDK for at oversætte Java med javac, benytter vi her et værktøj fra Vistas SDK (Software Development Kit) til at oversætte C-kode.

Så for at få opsat denne compiler i Windows Vista, først hente SDK’en:
Microsoft Windows SDK for Windows Vista (1 KB – 1178.3 MB)

Under installationen vil vi blive bedt om at vælge, hvad vi vil have installeret. Hvis man her kun er interesseret i compileren, vælges Visual C++ Compilers. Jeg vælger her også at installere et par andre værktøjer. Sørg for at udelade Documentation og Samples, hvis du ikke er interesseret i disse.

Nu har vi således fået installeret disse udviklingsværktøjer. For nu at benytte os af f.eks. et Vista Release udviklingsmiljøet, skal du køre:

cmd.exe /V:ON /E:ON./K "C:\Program Files\Microsoft SDKs\
Windows\v6.0\Bin\setenv.cmd" /RELEASE

I stedet for at der bare åbnes et almindelig Kommandoprompt-vindue, åbnes et Microsoft Windows Vista x86 RELEASE Build Environment-vindue, hvori vi kan benytte alle dets udviklingsværktøjer. Det som setenv.cmd først og fremmest gør, er at opsætte systemvariabler til værktøjerne.

Læg her mærke til at teksten farve er grøn. Ved benyttelse af /DEBUG, vil farven være gul. Hvis du har 64-bit Windows Vista vil det være x64. Den platform man ønsker at benytte, defineres ved brug af forskellige andre argumenter på setenv.cmd. F.eks. kan du skifte til 64-bit Windows XP, ved brug af: setenv.cmd /RELEASE /XP /x64.

Det vil være vanskelige at huske hovedkommandoen til vores udviklingsmiljø, er det her en god idé at angive en genvej til det, som eventuelt er placeret på skrivebordet. Ved oprettelse af en ny genvej skal der her skrives, hvor elementet er placeret. Dette er i dette tilfælde kommandoen fra før:

Efterfølgende giver vi genvejen et fornuftigt navn, hvorefter vi eventuelt kan vælge et nyt ikon til genvejen.

Så, nu har vi alt dette på plads, så var at vi her ville anvende C/C++ compileren, som et eksempel. Nu, hvor vi har det nye miljø at arbejde i, vil vi have compileren Microsoft 32-bit C/C++ Optimizing Compiler tilgængelig, ved at skrive cl. Den fulde syntaks for cl er:

cl [ option... ] filename... [/link linkoption... ]

Option, angiver hvilke indstillinger man vil benytte sammen med en givet fil med navnet filename. Disse indstillinger findes der mange af, hvor f.eks. en del af dem, er om optimering af koden. F.eks. giver henholdsvis /O1, /02 og /Ox, optimering af plads, fart og “maksimal optimering”.

Så lad os sige, vi vil oversætte følgende C-kode, som kan gange to hel tal med hinanden, ved brug af kun addition og subtraktion:

int main(int argc, char *argv[]) {
  int tal1 = atoi(argv[1]);
  int tal2 = atoi(argv[2]);
  printf("Produktet af %d og %d er: %d",
    tal1, tal2, produkt(tal1, tal2));
}
int produkt(int x, int y) {
  int p;
  int sign;
  sign = 1;
  if ( x < 0 ) {
    x = -x;
    sign = 0;
  }
  p = 0;
  while ( x > 0 ) {
    x = x - 1;
    p = p + y;
  }
  if ( sign == 0 ) p = -p;
  return p;
}

Så skal vi i kommandolinjen skrive: cl produkt.c
Hermed bliver koden nu oversat til en eksekverbar fil (.exe):

Her benytter vores main-metode sig af to argumenter. Så, hvis vi her ønsker at se, hvad produktet af -5 og 6 er, skriver vi: produkt.exe -5 6

Og det er heldigvis det helt korrekte, så C-koden fungerer altså helt korrekt.

- Peter Sandberg Brun

15 kommentarer til “Opsætning af C/C++ Compiler i Windows Vista”


  1. 1 Jakob

    Hej Peter,

    Jævnligt når jeg starter min computer med Vista op, står den et stykke tid med en sort skærm, før den går ind i Windows. Musen er der, men altså derudover kun en sort skærm. Det kan godt tage flere minutter, hvilket selvfølgelig er irriterende.

    Hvad tror du, der kan være i vejen…?

    Mvh Jakob

  2. 2 Peter Brun

    @ Jakob

    Det er der ikke det helt store at gøre ved. Det skyldes simpelt at du på din computer er meget som skal loades, før det starter. Sørg for det første at du har de nyeste drivere til alt. Prøv desuden at køre en diskoprydning og en diskdefragmentering. Dette vil måske gøre lidt ved det. Ellers tag desuden at sørg for at Strømstyring er sat til “Høj ydeevne”.

  3. 3 Jakob

    Okay – Synes bare, det er meget længere, end jeg tidligere har set på nogen computere.

    Hvordan tjekker jeg for nye drivere? Under Enhedshåndtering..?

    Ang. strøm har jeg hentet dit lille program, som skifter mellem høj og lav ydeevne alt efter, om der er strøm til eller ej. Skal jeg så ændre noget?

    Mvh Jakob

  4. 4 Peter Brun

    @ Jakob

    Hvis du ved, hvad du har i computeren, så hent driverne på deres sider. F.eks. hvis du har Reaktek High Defintion Audio, gå du til Realtek.com. Og sådan for det hele, ATI/AMD, NVIDIA osv. Ellers så ja, så kan du få et fingerpeg om hvad du har ved at gå til Enhedshåndtering.

    Med hensyn til strømstyringsmodellerne. Hvis du vil have at opstart er hurtigst, skal du sørge for at computeren er sat til Høj ydeevne, når du slukker computeren. Ved opstart vil det være den sidste valgte den benytter, indtil et program ved logon ændrer dette. (Altså, hvis du har sådan et program, som ændrer modellerne ved skift mellem batteri/stikkontakt. Hvis computeren er sat til strømbesvarelse ved sidste lukning, vil computeren føles at den starter langsommere (bærbar), da klokfrekvens for processoren er sænket. Så, sørg enkelt for at computeren ved lukning er sat til Høj ydeevne (ved at vælge det).

  5. 5 Jakob

    Okay. Hvilke ting skal jeg opdatere drivere for? Jeg mener, når jeg kigger under Enhedshåndtering er der listet ca. 20 forskellige ting op, men det er vel næppe dem alle.. eller hvad…?

    EDIT 18:36: Nevermind, jeg løber sgu bare det hele igennem nu…

  6. 6 Peter Brun

    @ Jakob

    Bare det du har mulighed for at finde. Primært grafikkort, lydkort, netværkskort/controller, og hvis du har muligheden også chipsættet. Men, som sagt kan computeren føles langsom under opstart, hvis du har sat strømbesvarelse.

  7. 7 Jakob

    Oki. Jeg har nu opdateret alle drivere. Jeg ville også opdatere driveren til mit lydkort, men den gav en fejlmeddelelse. Jeg tænkte ikke videre over det, men efter en genstart siger den, at der ikke er installeret nogen lydenhed. Jeg prøvede igen at opdatere driveren, men den giver samme fejlmeddelelse. Den henviser til producenten – Om kortet ved jeg, at det hedder Conexant HD-Audio SmartAMC HD2, og jeg har søgt hos Conexant uden at finde noget.

    Hvad kan jeg evt. gøre?

    Mvh Jakob

  8. 8 Peter Brun

    @ Jakob

    Tag og gå til Enhedshåndtering. Fjern enheden. Genstart. Ved opstart lad da computeren selv finde frem til denne specifikke driver (automatisk installation). Tjek eventuel Windows Update. Det ser ud til at man ikke selv skal prøve at opdatere denne Conexant-driver.

    Ellers, alt i alt vil du måske opleve en lille hastigheds forskel, ved opdatering af drivere. Dog kan det nogle gange betyde lidt mere (på grund af konflikter der måske har været).

  9. 9 Jakob

    Jeg gjorde, som du sagde, men desværre med samme resultat – Den skriver bl.a., at “De udvidede attributer er ikke konsekvente”. Og så ellers det samme. Hmm…

    (Samme problem, når Windows Update forsøger at installere driveren)

  10. 10 Peter Brun

    @ Jakob

    Hvis det er en bærbar, så prøv at finde den CD som fulgte med den. Her vil der forhåbentligt være de originale drivere. Hvis du ikke finder nogen, så prøv at gå til bærbar producentens support side, og se om du ikke finder en driver der. Og, hvis det ikke fungere, så prøv at kontakte deres support.

  11. 11 TSX

    Hej Peter,

    jeg roder med nogen VALVe server plugins som jeg skal compilere
    (valve= dev. af half-life og counter strikre) og der har jeg fået afvide at jeg skal bruge visual studio 2003/2005 til at compilere dll filerne. er det her det samme? og hvis ikk hvordan får jeg så visual studio ? det har ikke lykkeds mig og finde nogen af de to :’(
    og da jeg har nogel plugins som ikke vil køre på vista fordi de er compileret til xp/server 2003 så blir jeg nødt til at lave dem selv -.- how to do that?
    by the way alle de source koder jeg har består af en masse .cpp og .h filer og en .vproj og sln. er det her måden?

    på forhånd tak
    Tino Hansen

  12. 12 Peter Brun

    @ TSX

    Dette er ikke Visual Studio. Du kan benytte Visual C++ 2005 Express Edition til formålet. Dette er gratis og kan downloades herfra:
    http://download.microsoft.com/download/8/3/a/83aad8f9-38ba-4503-b3cd-ba28c360c27b/ENU/vcsetup.exe

    Med hensyn til resten af spørgsmålene finder du svarene på disse sider:
    http://developer.valvesoftware.com/wiki/Category:Modding
    http://developer.valvesoftware.com/wiki/Category:Programming

  13. 13 TSX

    ahh okay men det der har jeg installeret. men det virker ikke fordi den inkludere ikke nogen af de filer den skal så den failer. altså jo dem der er i source folderen som er en del af mit plugin men ikke dem dem er windows relaterede. fx en jeg mener hedder windows.h hvordan får jeg den til at inkludere alle disse filer fra windows sdk? det er sådan det eneste jeg mangler

    tak peter

    TSX

  14. 14 Mads Brun

    @ TSX

    Fejlen skyldes at du ikke helt har fået sat Visual C++ 2005 op med Windows SDK’ens placering. For at få det sat helt korrekt følg da følgende vejledning (under “Setup”) til punkt og prikke:
    http://developer.valvesoftware.com/wiki/Compiling_under_VS2005#Requirements

  15. 15 TSX

    okay mange tak mads! jeg vil se på det. jeg er nu sikker på det lykkes ! tak det har været e meget stor hjælp hvis det her virker!

    by the way linket er nede til “Microsoft Windows SDK for Windows Vista”

    TSX

Skriv en kommentar