Om någon har problem med att kompilera MD407-projekt, dvs med CrossGCC (arm...) eller vanliga "C-för-arbetsdatorn", dvs GCC, på datorer i data- eller labbsalar kan nedanstående vara till hjälp.

Varenda elev som loggar in i datasalarna och ska använda CodeLite kan behöva se till att CodeLite:s paths för kompilatorerna GCC samt "Cross GCC (arm...)", som följer med vår CodeLite-installation, är korrekta. Dessa paths sparas i elevens user settings för CodeLite. Dvs de hänger med elevens konto och är inte beroende av vilken dator i salarna som eleven sitter på. Samma gäller egentligen även i labbsalarna men där har vi lärare/assistenter rättighet att själva se till att CodeLite på förhand blivit rätt installerat vad gäller kompilatorsökvägarna.

Första gången en elev öppnar CodeLite i en datasal skall följande göras:

  • Avbryt den SetupWizard som tyvärr typiskt automatstartas första gången. Anledningen är att wizard:en ger möjlighet för eleverna att förstöra sökvägarna genom att söka efter existerande samt installera nya kompilatorer. Däremot får de såklart gärna ändra färgtemat i CodeLite, men det görs bäst i menyn "Settings->Colours and Fonts" om eleven absolut skulle vilja detta.
  • Varje elev kan behöva rätta till sökvägarna till GCC samt "Cross GCC (arm...)" manuellt, enligt följande:
    •   Öppna menyn "Settings->Build Settings...":


    •   Se till att sökvägarna för Cross GCC (arm...) är exakt som i nedanstående bild:
    Om Cross GCC (arm...) och GCC inte ens finns, hoppa två punkter framåt.

    Dvs varje sökväg börjar med $(CodeLiteDir)/tools/
    utom för Make som bara börjar med $(CodeLiteDir)/
    Ta för vana att trycka på "Apply" innan "OK" då CodeLite's settingsdialog kan bugga. Oftast krävs att man trycker return i inmatningsfältet för att kunna göra "Apply".

    •   Se därefter till att sökvägarna för GCC är exakt som i nedanstående bild:

    Dvs varje sökväg börjar även här med $(CodeLiteDir)/tools/
    utom för Make som bara börjar med $(CodeLiteDir)/


    •   Om Cross GCC (arm) och/eller GCC inte ens finns med som alternativ, gör enligt följande:
    1. Klicka på menyn "Settings"->"Environment Variables".

      Sökvägen för CodeLiteDir får inte innehålla mellanslag (för då fungerar inte vissa unix-kommandon som används vid kompileringen). Sökvägen ska vara
      CodeLiteDir=C:\Progs\CodeLite
      eller
      CodeLiteDir=C:\cseapp\CodeLite
      beroende på i vilken katalog som CodeLite är installerad på din maskin (checka via Windows Explorer).
    2. Klicka nu på menyn "Settings"->"Build settings".

      • Om Cross GCC inte syns, klicka på det gröna Plustecknet och navigera till mappen C:\Progs\codelite\tools\gcc-arm eller C:\cseapp\codelite\tools\gcc-arm. Nu bör du kunna klicka på "Select folder"-knappen och få frågan vad kompilatorn ska kallas. Kalla den Cross GCC (arm-none-eabi).

      • Om GCC inte syns, klicka på det gröna Plustecknet och navigera till mappen C:\Progs\codelite\tools\gcc eller C:\cseapp\codelite\tools\gcc och kalla kompilatorn "GCC".
    3. Existerande projekt kan behöva uppdateras för att använda rätt kompilator. Högerklicka på ett projekt och klicka på Settings. Under General, välj nu "GCC" eller "Cross GCC (arm...)" som kompilator.
    4. Om felet "Wrong file format" uppstår har fel kompilator använts tidigare och genererat små halvfärdiga bitar. Klicka på Build->Clean Project så ska de filerna försvinna och nästa Build bör fungera.

Varje gång en elev öppnar CodeLite:

  • Uppdatera ALDRIG CodeLite. (Vanligen frågar CodeLite tyvärr nästan varje gång det startas.) Anledningen är att vi använder en egen patchad CodeLite-installation för Windows som bl a innehåller debugstöd för MD407.

Lägg alltid ditt workspace och projekt i din Z:-katalog

  • Om du jobbar i datasalarna eller labbsalarna, lägg aldrig workspace eller projekt på din desktop. Då kan du få stora problem med CodeLite som dessutom kan vara mycket svåra att reparera. Lägg istället ditt workspace och alla projektfiler på Z-driven och i en sökväg som inte innehåller några mellanslag (för som sagt så fungerar annars inte vissa Unix-kommandon som används vid kompileringsstegen.)