# Användarmanual &kdevelop;

2004-11-13
&kdevrelease;
Bernd
Gehrmann

    bernd@kdevelop.org

Caleb
Tennis

    caleb@aei-tech.com

Bernd
Pol

    bernd.pol@online.de

2002
Bernd Gehrmann
2002
Caleb Tennis
2004
Bernd Pol
&FDLNotice;

&kdevelop; är en integrerad utvecklingsmiljö som kan användas för ett brett spektrum av programmeringsaktiviteter.

KDE
KDevelop
IDE
utveckling
programmering

## Vad handboken innehåller

Den här användarmanualen är avsedd att beskriva innehållet och användningen av den integrerade utvecklingsmiljön (IDE) &kdevelop; &kdevrelease; från användarens perspektiv. Det är inte en programmeringsmanual, och inte heller beskriver den utvecklingsprocessen i detalj. Det enda målet är att hjälpa dig med hanteringen av den integrerade utvecklingsmiljön.

Här hittar du information om följande ämnen:

- I korthet — Tips och trick: En snabbreferens till de oftast använda kommandona och åtgärderna, och en kort guide för att lösa vanliga problem vid arbete med &kdevelop;.

- Utveckling på &UNIX;: En historisk översikt över programutveckling i &UNIX;, de viktigaste verktygen som behövs och varför man behöver en integrerad utvecklingsmiljö.

- Installera &kdevelop;: Talar om var man skaffar &kdevelop;, och hur man får det att köra.

- Komma igång med &kdevelop;: En guidad tur: ger dig en snabb genomgång av hur det grafiska gränssnittet används, med en introduktion av de grundläggande stegen för att arbeta med ett projekt.

- Översikt av funktioner i &kdevelop;: Fördjupar den guidade turen i föregående kapitel, ger en översikt av vad som är inbyggt i &kdevelop; och gör dig bekant med utseendet och känslan i denna integrerade utvecklingsmiljö.

- Översikt över menyer och verktygsrader: Tillhandahåller en kort översikt över tillgängliga meny- och verktygsradsalternativ (i appendix).

- Snabbtangenter: Listar tangentsekvenserna (i appendix) som du kan använda för att snabbt komma åt specifika åtgärder i &kdevelop;.

- Anpassa &kdevelop;: Visar hur du kan skräddarsy den integrerade utvecklingsmiljön för att passa dina behov.

- Använda skript med &kdevelop;: Beskriver hur skript läggs till för att automatisera &kdevelop;.

- Avancerad projekthantering: Visar hur befintliga projekt kan laddas, konvertering av projekt från äldre versioner av &kdevelop; och import av andra befintliga projekt. Dessutom beskrivs inställningen av ett projekts alternativ för att passa dina behov.

- Redigeringsverktyg: Allt du behöver för att skriva källkoden. Från hur editorn används, hur textsökning både lokalt och i hela projektet görs, till hur nya filer och klasser integreras i projektet.

- Filbläddrarna: Demonstrerar diverse verktyg för att titta på projektets struktur och hur du kommer åt filerna du vill arbeta med.

- Klassbläddrarna: Beskriver en av de mest kraftfulla verktygen i &kdevelop;, som låter dig navigera i klassberoenden och låter dig enkelt skapa och komma åt de klasser och metoder du behöver.

- Dokumentation: Visar hur man kommer åt den omfattande inbyggda dokumentationen som &kdevelop; tillhandahåller, och talar om hur du skapar dokumentation av projektet, en koncis och kraftfull dokumentation av programmeringsgränssnittet, som ger dig en översikt över all källkod i projektet samt en docbook-baserad användardokumentation.

- Bygga och projekthantering: Handlar om att skapa och hantera projekt, beskriver grunderna i användning av autoconf och automake, samt hur egna byggfiler skapas och hur kompilator- och bygginställningar används för att skräddarsy programmet för att passa dina behov.

- Avancerad bygghantering: Tittar på sätt att hålla flera bygginställningar, för att korskompilera till olika plattformar, eller skapa inbyggda system med biblioteket Qt/embedded.

- Avlusargränssnittet: Beskriver hur det integrerade avlusargränssnittet till avlusaren gdb används, så att du kan jaga fel utan att lämna &kdevelop;.

- Använda CVS: Talar om för dig hur du kan underhålla projektet med CVS-versionshanteringssystem, en nödvändighet särskilt om många utvecklare arbetar med samma projekt.

- Dra nytta av externa program: Visar hur man kommer åt externa program och verktyg inifrån &kdevelop;, och på så sätt starkt utökar dess möjligheter.

- Insticksverktyg: Ger en översikt över de delar som utgör &kdevelop;, och hur du kan anpassa det för att passa dina behov genom att bara ladda nödvändiga delar, både för den integrerade utvecklingsmiljön och för hela projektet.

- En del ofta använd information har placerats i appendix. Bland annat består den av:

  - Översikt över menyer och verktygsrader: Tillhandahåller en kort översikt över tillgängliga meny- och verktygsradsalternativ.

  - Snabbtangenter: Listar tangentsekvenserna som du kan använda för att snabbt komma åt specifika åtgärder i &kdevelop;.

  - Inställningsfiler som används av &kdevelop;: Listar filerna som KDevelop använder för att spara sin interna information. Detta är särskilt användbart om något har blivit fel i dina inställningar.

  - Insticksverktyg: Listar insticksverktygen du kan använda för att skräddarsy &kdevelop;s möjligheter för dina behov.

## I korthet — Tips och trick

Informationen i det här kapitlet är avsett som en snabbreferens för att genast komma igång om du (tillfälligt) glömt bort några grundläggande koncept. Det finns också korta tips om hur några vanliga problem vid arbete med &kdevelop; kan lösas.

Om du vill ha mer information om ett ämne, följ bara länken i rubriken som erbjuder det.

Information om följande ämnen är tillgänglig:

- Utseende och känsla
- Projekt
- Kompilering
- Hantering av automake
- Problem med att kompilera och bygga
- Övriga ämnen

### Utseende och känsla

- ### Tvinga mindre verktygsvyflikar i IDEA-läge

  Normalt startar &kdevelop; med flikar som har stora textbaserade verktygstips omkring arbetsytan. Du kan ändra detta utseende, för att spara utrymme, i inställningsdialogrutan för &kdevelop; (Inställningar Anpassa KDevelop... Användargränssnitt).

  Om du använder en äldre version av &kdevelop; 3, kanske den här inställningsdialogrutan inte är tillgänglig. För att ändra utseendet hos verktygsvyernas flikar för hand, lägg till posten `MDIStyle` under rubriken `[UI]` i inställningsfilen `$KDEHOME/share/config/kdeveloprc` enligt följande:

  - `MDIStyle=0`: Bara ikoner
  - `MDIStyle=1`: bara text (normalvärde)
  - `MDIStyle=3`: ikoner och text

- ### Underligt färgade tecken och/eller skärmstil

  Om du observerar slumpmässigt färgade bokstäver överallt (dvs. på flikar, verktygsrader, etc.) och &kdevelop;s fönster verkar använda en felaktig skärmstil, kan följande hjälpa:

  - Hitta raden `Style=Checked` i inställningsfilen `$KDEHOME/share/config/kdeveloprc` och ta bort den. Starta därefter om &kdevelop;.

  (Beteendet uppstår ibland efter du vänsterklickat på en .ui-fil i en av filbläddrarna och &kdevelop; laddat KUIViewer för att visa det grafiska gränssnittet som skapats från filen.)

- ### Fullskärmsläge

  Välj Visa Fullskärmsläge i menyraden, eller tryck på Ctrl Skift F.

- ### Visa eller dölj menyraden

  För att dölja menyraden, välj Inställningar Visa menyrad i menyraden, eller tryck på Ctrl M. För att visa menyraden igen, är bara Ctrl M tillgängligt.

### Projekt

- ### Skapa nytt projekt

  Projekt Nytt projekt... startar programguiden.

- ### Skapa ett eget projekt

  Det finns inte något sätt att direkt skapa ett eget projekt (dvs. ett projekt som använder sina egna byggfiler). Använd istället Projekt Importera befintligt projekt. Kom ihåg att ange passande Projekttyp i dialogrutan, med den extra texten (Custom Makefiles).

- ### Använd projektalternativ från början

  Så fort du skapat ett nytt projekt, glöm inte att ställa in Projekt Projektinställningar.. enligt dina behov.

### Kompilering

- ### Detaljer i kompilatormeddelanden saknas

  Om du märker att en del värdefull information saknas i fönstret Meddelandeutmatning vid kompilering,kan du ha valt en detaljnivå för meddelanden som är för låg. Högerklicka på fönstret och välj en annan detaljnivå i menyn som dyker upp.

### Hantering av automake

- ### Skapa nya filer i ett projekt

  Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen på grupprubriken där du vill lägga till filerna och välj Skapa ny fil...

- ### Lägga till befintliga filer i ett projekt

  Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen på grupprubriken där du vill lägga till filerna och välj Lägg till befintliga filer...

- ### Ta bort en fil från ett projekt

  Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen på grupprubriken där du vill ta bort filerna och välj Ta bort.

### Problem med att kompilera och bygga

- ### Projekt byggs inte igen efter byte till eller från målet default

  Det finns ett problem med &automake; och &autoconf; maskineriet. Om Projekt Bygginställningar ger möjlighet att välja bland tre byggkataloger: default, optimized och debug, håll dig för allt i världen antingen till målet default eller målen debug/optimize.

  - När du väl har ställt in projektet med default, byggs det inte längre med debug eller optimized.

  - När du väl har ställt in projektet med debug eller optimized, byggs det inte längre med default.

- ### Fel`version av` autoconf, etc.

  Det finns flera felmeddelanden som berör för gamla versioner av autoconf, etc. som förhindrar att `configure` fungerar som det ska. Kör `autoreconf` i katalogträdet där filerna `configure.in` i fråga finns. Kommandot försöker uppdatera informationen i &GNU; byggsystemfiler. Se `man autoreconf` för mer information.

### Övriga ämnen

- ### Inställningsfiler som används av &kdevelop;

  Oftast ska du inte behöva bry dig om det, men det är mycket användbart att känna till om något har gått fel med dina inställningar.

&unixdev; &kdevelop-install; &getting-started; &kdevelop-survey; &setup; &kdevelop-scripting; &applicationwizard; &project-advanced;

## Redigeringsverktyg

### Kodsnuttar

#### Funktioner (inledande översikt)

- Delprogrammet för kodsnuttar lägger till en verktygsvy som normalt dockas till höger

- Tillägg, redigering och borttagning av kodsnuttar är tillgängligt via en sammanhangsberoende meny.

- Ett dubbelklick på en kodsnutt i listan infogar den i den aktiva vyn på markörens plats

- Verktygstips visar innehållet i en kodsnutt

- Kodsnuttar lagras i användarens hemkatalog, så varje användare kan ha sina egna kodsnuttar

- Kodsnuttar kan innehålla variabler på formen $VARNAMN$. När kodsnutten används, frågas användaren efter ersättningsvärden för variablerna

### Tangentanvändning

I det följande listar vi normala tangentbindningar för standardeditorn. Du kan anpassa dem som du vill (hur då?).

Vänster | Flyttar ett tecken åt vänster
Höger | Flyttar ett tecken åt höger
Ctrl Vänster | Flyttar ett ord åt vänster
Ctrl Höger | Flyttar ett ord åt höger
Upp | Flyttar upp en rad
Ner | Flyttar ner en rad
Page Up | Flyttar upp en sida
Page Down | Flyttar ner en sida
Ctrl Page Up | Går till början av filen
Ctrl Page Down | Går till slutet av filen
Hem | Går till början av raden
End | Går till slutet av raden

För alla tangenter ovan, kan dessutom skifttangenten tryckas ner, för att markera text från markörens nuvarande position till den nya.

Backsteg | Tar bort ett tecken åt vänster
Ta bort | Tar bort tecknet under markören
Ctrl C | Kopierar den markerade texten till klippbordet
Ctrl V | Klistrar in den markerade texten från klippbordet
Ctrl X | Tar bort den markerade texten och lägger den på klippbordet
Ctrl Z | Ångra
Skift Ctrl Z | Gör om

### Problemrapporter

(... ännu inte skrivet ...)

### Sökning och flerfilssökning

#### Söka efter text

Ctrl F- Sök, Ctrl R- Ersätt

#### I-sök

Den vanliga sökningen med Redigera Sök kräver att du anger hela sökbegreppet innan du startar. Oftast är det mycket snabbare att söka inkrementellt. Om du klickar på sökfältet som heter I-sök i verktygsraden, sker sökningen medan du skriver. Du kommer att märka att det önskade resultatet ofta redan hittas när du har skrivit in 3 eller 4 tecken.

#### Flerfilsökning

Båda sökmekanismerna som beskrivs ovan är begränsade till sökning i en källkodsfil. Ett ytterligare verktyg som låter dig söka igenom ett (möjligtvis stort) antal filer är tillgängligt via alternativet Sök i filer... i menyn Redigera. Det är i grunden ett gränssnitt för programmet &grep;(1).

I dialogrutan kan du ange vilka filer som ska sökas i. Det finns ett antal jokertecken tillgängliga i en kombinationsruta. Genom att använda dem kan du enkelt begränsa sökmekanismen till exempel för deklarationsfiler. Dessutom kan du också ange en katalog där sökningen startas. Om du markerar rutan Rekursiv, går sökningen igenom alla kataloger i hierarkin under den angivna.

Sökbegreppet är i grunden ett reguljärt uttryck som följer POSIX-syntax. Du kan till exempel använda begreppet `"\<K.*"`, om du vill hitta alla ord som börjar med bokstaven K. Följande tecken tolkas på ett särskilt sätt:

`.` | Matchar alla tecken
`^` | Matchar början av en rad
`$` | Matchar slutet av en rad
`\<` | Matchar början av ett ord
`\>` | Matchar slutet av ett ord
`?` | Föregående objekt matchas mindre än en gång
`*` | Föregående objekt matchas noll eller flera gånger
`+` | Föregående objekt matchas en eller flera gånger
`{n}` | Föregående objekt matchas exakt n gånger
`{n,}` | Föregående objekt matchas n eller flera gånger
`{,n}` | Föregående objekt matchas mindre än n gånger
`{n,m}` | Föregående objekt matchas minst `n` gånger, men mindre än `m` gånger

Bakåtreferenser till deluttryck inom parenteser är också tillgängliga med notationen `\n`.

Som en särskild bonus för C++ programmerare, finns några sökmallar tillgängliga för typiska mönster. De låter dig till exempel söka efter alla anrop av medlemsfunktioner för ett visst objekt.

När du väl har startat sökningen genom att klicka på knappen Sök, utförs den av en yttre, asynkron process. Alla objekt som hittas syns i vyn som heter Flerfilsökning. Därefter kan du hoppa till objekt som hittas genom att klicka på dem. Observera att grep söker igenom filerna som är lagrade i filsystemet. Om du har ändrade versioner av dem i editorn, kan du få felaktiga radnummer, eller vissa ogiltiga hittade objekt. Du kan undvika detta genom att spara alla filer innan.

### Kodkomplettering

(... ännu inte skrivet ...)

### Skapa nya filer och klasser

(... ännu inte skrivet ...)

#### Redigera mallarna

(... ännu inte skrivet ...)

## Filbläddrarna

På vänstra sidan i huvudfönstret, kan &kdevelop; visa olika sorters listor och träd för att välja filer:

- ### Filträd

  Det visar en trädvy av filhierarkin under projektkatalogen. Om du klickar på en fil, laddas den i editorn. För filer som inte innehåller text, startar KDevelop ett program som kan hantera motsvarande MIME-typ.

  Filträdet uppdateras regelbundet så fort någonting ändras i filsystemet. Om du till exempel skapar nya filer eller kataloger (till och med utanför &kdevelop;), syns det omedelbart i fillistan. På Linux använder den här funktionen FAM-biblioteket. På andra operativsystem, eller via NFS, kontrolleras katalogerna som visas med korta intervall.

  Filträdet döljer filer som oftast inte är intressanta, som objektfiler. I Projektalternativ under Filvyer, kan du anpassa vilka mönster som används för att filtrera bort ointressanta filer (som en lista med jokertecken, åtskilda med kommatecken).

  Du kan dessutom välja att begränsa filträdet så att det bara visar filer som hör till projektet som för närvarande är laddat. Det kan ändras genom att klicka med höger musknapp på trädets rot.

  ### En skärmbild av filträdet

- ### Filgrupper

  Det här visar filerna som tillhör projektet, grupperade enligt filändelsen. Som i filträdet, kan du redigera en fil genom att klicka på den med vänster musknapp.

  Grupperna som visas i vyn kan ställas in under Filvyer i dialogrutan Projektinställningar. För att anpassa vyn enligt dina behov, är det viktigt att förstå hur filer tilldelas till grupperna. För varje fil, går &kdevelop; igenom grupperna uppifrån och ner. I varje grupp kontrolleras om filnamnet matchar ett av mönstren. Vid en träff, visas filen i gruppen och upprepningen avbryts. Detta klargör att mer generella mönster ska placeras under mer specifika. Till exempel ska en asterisk för gruppen Övriga vara det sista mönstret.

## Klassbläddraren

Vid arbete med ett projekt i ett objektorienterat språk, läggs inte tonvikten på källkodsfilerna och deras namn, utan på klasserna och deras samband. För att hjälpa dig navigera bland definierade klasser och symboler, innehåller &kdevelop; diverse klassbläddrare som synliggör klasstrukturen på olika sätt.

### Klassvy

Den här vyn visas till vänster i huvudfönstret och innehåller en linjär lista av alla klasser, variabler och funktioner i projektet. Den är konstruerad som en trädvy. Om du öppnar en klassnod genom att klicka på den, visas en lista med alla metoder och egenskaper som respektive klass har.

#### En skärmbild av klassbläddraren

Klassvyn arbetar i två olika lägen. Normalt grupperas alla symboler i Klasser, Struct:ar, Funktioner, Variabler och Namnrymder. I den sammanhangsberoende menyn, kan du välja Lista enligt namnrymder. Med detta läge, visas namnrymdshierarkin, och symboler grupperas i respektive namnrymd där de definieras. Det här kan vara mer användbart i projekt som använder många (hierarkiska) namnrymder. Det är mindre användbart i projekt utan namnrymder.

Du kan också ändra sättet som klassnamn visas. Normalt visas klassernas namn, utan namnrymden där de definieras. Det betyder att du inte omedelbart kan skilja på klasser med samma namn i olika namnrymder. Om du håller musen still ett ögonblick över ett namn, visas dock det fullständiga namnet som ett verktygstips. Du kan välja att alltid visa det fullständiga klassnamnet genom att välja Fullständig räckvidd för identifierare i den sammanhangsberoende menyn.

Genom att klicka på en klass eller metod i en klassvy kommer du till dess definition. Du kan också hoppa till en metods deklaration genom att välja Gå till deklaration i den sammanhangsberoende menyn. I den sammanhangsberoende menyn för klasser finns också alternativen Lägg till metod... och Lägg till egenskap... De öppnar dialogrutor där du kan skapa nya metoder och variabeldeklarationer för den relevanta klassen, tillsammans med en tom implementering.

### Klassverktyg

Klassverktygsdialogrutan aktiveras genom att högerklicka på en klass i klassvyn och välja Klassverktyg....

### Klasshierarki

(... ännu inte skrivet ...)

## Dokumentation

Dokumentation är tyvärr en av de mest förbisedda delarna av programmering. Ändå så erbjuder riktigt upprättad och underhållen intern och extern dokumentation ytterst värdefull hjälp.

Dokumentation har flera aspekter. Det finns

- intern projektdokumentation, som i huvudsak består av

  - kommentarer i deklarationsfiler och källkodsfiler

  - Intern dokumentation av programmeringsgränssnittet för projektet, som har skapats från programfilerna av särskilda verktyg, t.ex. &doxygen;

- extern projektdokumentation, som bland annat består av

  - extern dokumentation av programmeringsgränssnitt, till exempel för gemensamma systembibliotek (KDE, Qt, etc.)

  - all övrig dokumentation (manualer för programspråk, allmän systeminformation, handledningar och liknande)

All denna dokumentation ska vara enkel att underhålla och lätt tillgänglig så fort du behöver den. &kdevelop; har stöd för just detta.

### Dokumentationsbläddraren

#### En skärmbild av dokumentationsträdet

&project-management;

## Avancerad bygghantering

### Flera bygginställningar

(... ännu inte skrivet ...)

### Korskompilering

Om du har lämpliga korskompilatorer tillgängliga, kan du kompilera dina program för processorer och operativsystem som skiljer sig från systemet där &kdevelop; och kompilatorn kör. &GNU;-kompilatorn, &gcc;, kan konfigureras och kompileras som en korskompilator om du kompilerar den själv. Rådfråga GCC infosidorna för mer information. Vissa Linux-distributioner tillhandahåller också binärpaket.

Ett automake-baserat paket kan lätt korskompileras genom att ange väljaren `--host` till configure-skriptet och ställa in miljövariablerna `CC` och `CXX` till motsvarande korskompilatorer. Ofta vill du byta mellan en korskompilerad version av programmet, och en som kompilerats för utvecklingssystemet. För att göra det, är det en fördel att använda möjligheten i &kdevelop; att skapa flera byggkonfigurationer, som förklaras under . När du har skapat en ny byggkonfiguration för korskompilering i dialogrutan Projekt Projektalternativ..., lägg till väljaren

    --host=plattform

till configure-väljarna. Värdet plattform är en kombination av formen

    cpu-tillverkare-operativsystem

eller

    cpu-tillverkare-kärna-operativsystem

För många kombinationer kan du använda en kortform, till exempel i386-linux eller arm-elf.

### Qt/Embedded

&qte; är en version av &Qt;-biblioteket som inte använder X-window systemet, utan ritar direkt i rambuffern på Linuxsystem. Den är därför intressant för inbäddade system som har hårda begränsningar för minnesanvändningen i hela systemet. Dess programmeringsgränssnitt överensstämmer fullständigt med X11-versionen.

Att utveckla ett program för &qte; med &kdevelop; skiljer sig inte mycket från att utveckla ett program för X11-versionen av &Qt;. I själva verket kan du använda samma grundkod för båda versionerna. Om du använder projekthantering med autoprojekt, kan du byta till den inbäddade versionen genom att skicka väljaren `--enable-embedded` till configure-skriptet. Du kan ställa in det i dialogrutan Projekt Projektinställningar... under Inställning av configure. Med väljaren `--with-qt-dir=KATALOG`, kan du ställa in katalogen där &qte; är installerad.

Efter att ha konfigurerat och kompilerat programmet med dessa väljare, länkas det med biblioteket `libqpe.so`. Den här versionen av programmet kör inte normalt när du använder X11. För att prova den, kör den med hjälp av programmet qvfb (Qt:s virtuella rambuffer). Det görs genom att starta qvfb och därefter starta programmet med

    program -qws -display QVFb:0

När du har en version av programmet som fungerar, vill du naturligtvis använda den på målprocessorn. Det kan troligen vara bekvämt att kunna skapa flera byggkonfigurationer, som förklaras ovan, så att du snabbt kan byta mellan versionen som kör på utvecklingssystemet och versionen som kör på målsystemet.

Program för &qte; kör normalt som enkla program på enheten de är konstruerade för. Trolltech stöder också Qtopia, som är en samling program för personlig information, webbläsning och diverse andra områden som fungerar tillsammans på ett konsekvent sätt. Det är till exempel standardomgivningen på Sharp Zaurus. Du kan skriva program som passar in i denna omgivning genom att använda Qtopias utvecklingsmiljö (SDK). Det medför att ditt program måste vara en delklass till `QPEApplication` och det måste länkas med biblioteket `libqpe.so`. Om du utvecklar programmet med projekthanteringen autoprojekt, måste du lägga till `--enable-qtopia` till konfigurationsväljarna.

## Avlusargränssnittet

&kdevelop; innehåller en intern avlusare för C och C++, som är direkt integrerad med editorn. Tekniskt sett är den implementerad som ett gränssnitt som använder den flyttbara &GNU;-avlusaren gdb via en rörledning. Avlusaren kan startas på flera sätt:

- Huvudprogrammet i projektet laddas i avlusaren med Avlusa Starta.

- Genom att använda Avlusa Starta (annan) Undersök minnesdump, laddar du en minnesdump till minnet, som skapats av operativsystemets kärna när programmet kraschade. (Att skapa minnesdumpar kan vara avstängt på systemet, se ulimit(1)). Det här är användbart för en post-mortem analys av ett program.

- Du startar avlusaren för ett program som redan kör med Avlusa Starta (annan) Anslut till process. En processlista visas där du kan välja processen som avlusaren ska överta.

- Observera att avlusning bara är möjlig om projektet har kompilerats med avlusningsinformation aktiverad. Den kan aktiveras i dialogrutan Kompilatorinställningar. När alternativet är aktiverat, skapar kompilatorn ytterligare information som låter avlusaren associera filnamn och radnummer med adresser i det körbara programmet.

Gränssnittet till avlusaren erbjuder flera vyer in i processen:

- ### Variabler

  Det här fönstret visar värden för alla lokala variabler vid det nuvarande stället i programmet. Det täcker variablerna i kompilatorns anropsstack, dvs. funktionen där processen bröts, funktionen som anropade den här funktionen, och så vidare hela vägen till funktionen `main()`.

  En annan gren i variabelfönstret innehåller bevakningsvariabler. Du kan själv ställa in vilka variabler som syns här. Både lokala och globala variabler kan bevakas. Du kan antingen lägga till en variabel genom att klicka på knappen Lägg till eller trycka på returtangenten när posten Bevaka är markerad. Variablerna kan tas bort igen med den sammanhangsberoende menyn.

- ### Brytpunkter

  (... ännu inte skrivet ...)

- ### Aktiveringspoststack

  (... ännu inte skrivet ...)

- ### Visa assemblerkod

  (... ännu inte skrivet ...)

### Ange brytpunkter

(... ännu inte skrivet ...)

### Alternativ

#### Visa behandlade namn

Funktionsnamn i det körbara programmet är behandlade för C++, dvs. funktionsnamnet innehåller information om argumentens typer. Detta är nödvändigt för att stödja överlastade funktioner. Behandlingsalgoritmen är inte standardiserad, och skiljer sig till och med mellan olika versioner av &GNU;:s C++ kompilator.

I assemblerkodfönstret visas normalt obehandlade namn, så funktionssignaturer liknar utseendet i källkoden, och är lätt läsbara. Alternativt, kan du välja att se behandlade namn.

#### Försök sätta brytpunkter när bibliotek laddas

Avlusarens bakgrundsprogram gdb tillåter inte att brytpunkter sätts i kod som inte för närvarande är laddad. I ett riktigt modulärt program, där kod ofta bara laddas vid behov som insticksprogram (med användning av C-bibliotekets funktion `dlopen(3)`), kan detta vara besvärande. Därför hanterar &kdevelop; själv stöd för brytpunkter i delade bibliotek. Om du aktiverar det här alternativet, kan du sätta brytpunkter i bibliotek som inte laddats. Därefter, så fort gdb talar om att ett bibliotek har laddats, försöker &kdevelop; sätta de vilande brytpunkterna.

#### Aktivera flytande verktygsrad

(... ännu inte skrivet ...)

## Använda CVS

### &CVS; grunder

&CVS; är versionshanteringssystemet som många projekt med öppen källkod, inklusive &kde;, använder. Det lagrar all källkod på en centralt plats, som kallas arkivet. Utvecklare hämtar en aktuell version av projektet eller versioner av det vid godtyckliga tidpunkter, från arkivet. I motsats till vissa andra versionshanteringssystem, är det inte nödvändigt att låsa filer som man ska arbeta med. Alltså kan utveckling ske parallellt i stor utsträckning.

Så fort en utvecklare är klar med en uppgift, arkiverar han sin kod (tillsammans med ett loggmeddelande). &CVS; tar hand om arbetet att sammanfoga ändringar som görs av flera utvecklare. Det kan förstås hända att utvecklare arbetar med samma kodavsnitt, vilket ger upphov till ändringar med konflikter (i praktiken inträffar detta sällan, och är ofta ett tecken på bristande kommunikation). I detta fall, förkastar &CVS; arkiveringen. En fil kan bara arkiveras efter alla konflikter har lösts upp.

Hittills har de grundläggande funktionerna i &CVS;, som man oftast måste hantera, beskrivits. Men &CVS; erbjuder mycket mer: Man kan hantera flera grenar av ett projekt (t.ex. var &kde; 1.1.2 och &kde; 2 grenar i &kde;:s utvecklingsträd), sammanfoga ändringar från en gren till en annan, fråga efter skillnader mellan versioner och filers versionshistorik, etc.

&CVS; implementeras som ett klient-serversystem. Som användare, sker all kommunikation med arkivet via kommandoradsprogrammet &cvs;. Gränssnitt på högre nivå är tillgängligt via program som Cervisia ( ) eller TkCVS (). Bara en liten del av &cvs; funktioner, som är viktiga under det dagliga arbetet, kan användas direkt i &kdevelop;.

Grundläggande kunskap om användning av &CVS; förutsätts. I synnerhet bör du veta hur ett givet projekt hämtas från arkivet. Vi rekommenderar boken Open Source Development With CVS av Karl Fogel, som kan spridas fritt (utom de icke-tekniska kapitlen). Se .

### &CVS;-kommandon i &kdevelop;

Följande alternativ är tillgängliga i filvyernas sammanhangsberoende menyer:

- #### Lägg till i arkivet

  Förbereder en fil för att läggas till i arkivet. Filen överförs till arkivet när du arkiverar den (eller katalogen som den finns i) nästa gång.

- #### Ta bort från arkivet

  Förbereder en fil för att tas bort från arkivet. Det här tar också bort filen från det lokala filsystemet, så använd funktionen med försiktighet!

- #### Uppdatera

  Kör kommandot `cvs update` för att sammanfoga eventuella ändringar från andra användare till din arbetskatalog. När du använder menyalternativet för en katalog, sker uppdateringen normalt rekursivt, utom om du har stängt av det i inställningsfilen `.cvsrc`.

- #### Arkivera

  Kör `cvs commit` för att arkivera alla lokala ändringar i arkivet. Observera att du bör uppdatera innan du gör detta. Om en annan användare tidigare har arkiverat sina ändringar, kan &CVS; annars ge ett felmeddelande.

Alla kommandon startas som underprocesser av &kdevelop;, utan ytterligare kommandoradsväljare eller miljövariabler. Det här kan vara ett problem om anslutningen till &CVS;-servern går via en &ssh;-anslutning, och kräver att du skriver in ett lösenord varje gång du arkiverar eller uppdaterar. Det här är till exempel nödvändigt om projektets värd är `sourceforge.net`. Ett sätt att gå runt problemet beskrivs i vanliga frågor om CVS/SSH, som du hittar i SourceForge-dokumentationen.

### Bakom ridån

#### Vad &CVS; sparar i arbetskatalogen

(... ännu inte skrivet ...)

## Dra nytta av externa program

Även om &kdevelop; är en så kallad integrerad utvecklingsmiljö, kommer den aldrig att innehålla alla funktioner som du kan vilja använda, och möjligheterna i dess editor kommer aldrig att räcka till för att utföra ofta använda textbehandlingsåtgärder. Som ett verkligt &UNIX;-program innehåller &kdevelop; flera möjligheter att starta externa program, att koppla in externa program för att behandla filer, eller använda externa filter för att behandla editorns nuvarande innehåll.

Den mest generella och enkla funktionen av den här typen är verktygsmenyn, som du kan anpassa fritt. Det görs i dialogrutan Inställningar Anpassa KDevelop... under Externa verktyg.

Andra verktyg beskrivs i kapitlet .

## Tack till

### Bidragsgivare

- Det ursprungliga innehållet i den här handboken skrevs av Bernd Gehrmann bernd@kdevelop.org och Caleb Tennis caleb@aei-tech.com.

- Kapitlen Sammanfattning av Hantering av automake och Användning av Hantering av automake är skrivna av Ian Wadham, ianw@netspace.net.au.

&app-menu;

## Snabbtangenter

(... ännu inte skrivet ...)

&app-files;

## Insticksverktyg

&kdevelop; innehåller ett stort antal små verktyg, som hjälper dig att utföra vissa uppgifter. De flesta fungerar som insticksprogram. Det betyder att om du inte tycker om något av dem, kan du helt enkelt stänga av det i dialogrutan Projektinställningar under Insticksprogram (för insticksprogram som gäller hela projektet) eller under Inställningar Anpassa KDevelop.... Insticksprogram som stängs av belastar inte menyer och laddas inte i minnet.

- ### Insticksprogrammet `abbrev`

  Det här insticksprogrammet fyller i förkortningar av ofta använda kodfragment. Det aktiveras genom att trycka på Ctrl Mellanslag. Om du till exempel skriver in `"ife"` i C++ editorn, och trycker på Ctrl Mellanslag, får du en `if-else` kodmall och sparar några tangentnertryckningar. Uppsättningen med förkortningar som stöds beror på den redigerade filens programspråk. För till exempel PHP är du naturligtvis intresserad av andra kodmallar än för &Java;.

  Uppsättningen med kodmallar kan anpassas. Du kan se vilka som är tillgängliga i dialogrutan Inställningar Anpassa KDevelop... under Förkortningar.

- ### Insticksprogrammet `filter`

  Detta erbjuder två funktioner. Om du väljer Verktyg Kör kommando kan du skriva in ett skalkommando. Utmatningen från kommandot infogas i editorns buffer när du trycker på knappen Starta.

  En liknande funktion är tillgänglig under Verktyg Filtrera markering genom kommando.... För att använda det här, måste du markera ett textområde i editorn. Om du nu skriver in ett skalkommando och trycker på knappen Starta, så startas kommandot och markeringen används som standardinmatning till det. Standardutmatningen infogas sedan i editorn.

- ### Insticksprogrammet &doxygen;

  Detta hjälper dig att använda API-dokumentationsverktyget &doxygen; (). Du kan välja Projekt Kör Doxygen för att skapa API-dokumentation för det nuvarande projektet baserat på konfigurationen som anges av filen `Doxyfile` i projektkatalogen.

  Dessutom kan du anpassa &doxygen; med dialogrutan Projekt Projektinställningar.... Dialogrutan är mycket lik verktyget &doxywizard;.

- ### Insticksprogrammet &ctags;

  Även om klassbläddraren ger dig utförlig överblick över symboler och klasser i projektet, kan du också vilja använda ctags-verktyget. Det stöder i synnerhet många fler språk än klassbläddraren.

  Du aktiverar insticksprogrammet under Verktyg CTags.... När du startar det för första gången, blir du tillfrågad om att först skapa en sökdatabas. När du accepterar detta, startas &ctags;-programmet och skapar en fil som heter `tags` i projektkatalogen. Detta är en textfil som innehåller alla symboler i källkodsfilerna.

  Du kan söka på två sätt i symboldatabasen: när rutan Matcha med reguljärt uttryck är markerad, tolkas texten som du skriver in som ett reguljärt uttryck (POSIX-varianten) och matchas med befintliga symboler. Texten `.*Widget` söker till exempel efter alla symboler som slutar med `Widget`. Om rutan inte är markerad, är sökningen verbatim.

  Under sökningen visas en lista med matchade symboler, tillsammans med radnummer där de definieras. Du hoppar till respektive ställe genom att klicka i listan.

  För vissa språk skiljer &ctags; mellan olika typer av symboler. Python har till exempel klasser och funktioner. Du kan söka enbart efter klasser genom att kryssa in motsvarande typ i dialogrutan.

  Symboldatabasen uppdateras normalt inte när källkoden ändras. På grund av detta kommer inte radnumren vara riktiga längre efter ett tag, och nytillagda klasser och funktioner kommer att saknas. Därför bör du uppdatera filen `tags` med regelbundna intervall, genom att trycka på knappen Skapa om.

- ### Insticksprogrammet `astyle`

  (... ännu inte skrivet ...)

- ### Insticksprogrammet `regexptest`

  Att konstruera reguljära uttryck kan vara ett hårt arbete. Ofta matchar det första försöket med ett uttryck för många strängar. I synnerhet vid arbete med ett kompilerat språk kan cykeltiden vid avlusning av ett reguljärt uttryck vara besvärlig. Insticksprogrammet regexptest låter dig direkt utforska ändringar i ett reguljärt uttryck. Det aktiveras genom att välja Verktyg Avlusa reguljärt uttryck....

  I variantkombinationsrutan kan du välja vilken variant av reguljära uttryck som ska användas. För närvarande stöds varianten som definieras av POSIX-standarden, som används av programmet &grep;, och den utökade POSIX-syntaxen som används av programmet &egrep;.

  När du skriver in ett uttryck, får du omedelbart återmatning om eventuella syntaxfel i det. Genom att skriva in en text under Teststräng, kan du se om uttrycket matchar strängen. I synnerhet om det reguljära uttrycket innehåller grupper, som `"([a-z])"`, visas innehållet av de matchade delgrupperna i en listruta.

- ### Insticksprogrammet `konsole`

  (... ännu inte skrivet ...)

### Översikt

&kdevelop; erbjuder utökningsbara moduler, eller delprogram, som laddas när programmet kör och vid behov. Det gör det möjligt för utvecklare att bara aktivera funktioner som de behöver eller vill ha för utvecklingen.

Vissa delprogram anses vara allmänna, dvs. de påverkar hela funktionen hos &kdevelop;. Till exempel uimode-delprogrammet låter en utvecklare välja vilket användargränssnitt som ska användas.

Andra delprogram är projektspecifika, och används bara när ett projekt av den typen laddas. Hantering av automake, behöver till exempel bara vara aktiv när ett automake-baserat projekt är laddat. Annars är den inte aktiv.

Aktiva delar kan påverka &kdevelop; på många sätt. Beroende på funktion, kan de lägga till extra menyer, extra menyalternativ, extra verktygsknappar etc.

#### Delprogram för projekthantering i &kdevelop;

antproject | ANT-projekthantering (&Java;-program)
autoprojekt | Automake projekthantering
customproject | Egen projekthantering
trollproject | Qmake-baserad projekthantering

#### Allmänna delprogram i &kdevelop;

Delprogramnamn | Beskrivning
appwizard | Ny projektguide
historik |
konsole | Inbäddad terminal
editor-chooser | Väljer en intern texteditor
doctreeview | Dokumentationsbläddrare
openwith |
fileselector | En komponent för att välja filer
uimode | Anpassa gränssnittsläget
texttools | Ytterligare textverktyg
tipofday | Dagens tips
grepview | Ett grafiskt flerfilsökningsverktyg
cvs | Stöd för CVS
verktyg |
regexptest | Verktyg för att prova reguljära uttryck
abbrev | Expansion av förkortningar
filter |
valgrind | Ett grafiskt gränssnitt till valgrind

#### Delprogram för språkstöd i &kdevelop;

cppsupport | Stöd för C/C++
fortransupport | Stöd för Fortran
javasupport | Stöd för &Java;
perlsupport | Stöd för Perl
phpsupport | Stöd för PHP
pythonsupport | Stöd för Python

#### Projektspecifika delprogram i &kdevelop;

astyle |
buglist |
classview | Klassvyhantering
ctags |
debugger | Hantering av &GNU;-avlusare
diff |
distpart |
doxygen |
fileview |
javadebugger |
manager |
nedit |
outputviews |
perforce |
qeditor |
scripting |
scriptproject |
sourcenav |
svn |
visualboyadvance |
windowmenu |

## Exempel på lägen i användargränssnittet för &kdevelop;

### IDEA-fönsterläge

Klicka här för att återgå till översikten över lägen.

Skärmbild

&kdevelop; IDEA-fönsterläge

Klicka här för att återgå till översikten över lägen.

Skärmbild

&kdevelop; IDEA-fönsterläge, stängda flikar

Det här skärmbildsexemplet visar en av de huvudsakliga fördelarna med IDEA-läge, att det finns en maximal arbetsyta tillgänglig. Ändå är alla verktygsvyer lätt tillgängliga genom att klicka på motsvarande flik.

Du behöver troligen en viss tid innan du har vant dig vid ikonerna i flikraden. Om du är vilse, placera bara musen över en flik och vänta några sekunder. En beskrivning i form av ett kort verktygstips dyker då upp. På skärmbilden visas verktygstipset Hantering av automake som exempel. Det beskriver den nedre fliken i högra flikraden.

Klicka här för att återgå till översikten över lägen.

### Underramsläge

Klicka här för att återgå till översikten över lägen.

Skärmbild

&kdevelop; underramsläge

Klicka här för att återgå till översikten över lägen.

### Fliksidläge

Klicka här för att återgå till översikten över lägen.

Skärmbild

&kdevelop; fliksidläge

Klicka här för att återgå till översikten över lägen.

### Toppnivåläge

Klicka här för att återgå till översikten över lägen.

Skärmbild

&kdevelop; toppnivåläge

Klicka här för att återgå till översikten över lägen.

## Ytterligare information

### Hämta information

(... ännu inte skrivet ...)

### Rapportera fel

(... ännu inte skrivet ...)

### Licenser

&underFDL; &underGPL;

## Ändringar

### Ändringar i dokumentet

- 2003-01-03 — Startade ändringsloggen

## Bibliografi

(... ännu inte skrivet ...)

#### GNU Make Manual

Richard M.
Stallman
Roland
McGrath

#### GNU Automake

David
MacKenzie
Tom
Tromey

#### GNU Autoconf

David
MacKenzie
Ben
Elliston

#### Using the GNU Compiler Collection

Richard M.
Stallman

#### GNU Libtool

Gordon
Matzigkeit
Alexandre
Oliva
Thomas
Tanner
Gary V.
Vaughan

#### GNU Autoconf, Automake och Libtool

1st edition
October 2000
Gary V.
Vaughan
Ben
Elliston
Tom
Tromey
Ian Lance
Taylor
New Riders Publishing
ISBN 1578701902

#### Advanced Programming in the &UNIX; Environment

1st edition
June 1992
W. Richard
Stevens
Addison-Wesley Pub Co
ISBN 0201563177

#### Thinking in C++, Volume 1: Introduction to Standard C++

2nd Edition
April 15, 2000
Bruce
Eckel
Prentice Hall
ISBN 0139798099

#### Open Source Development with CVS

2nd Edition
October 12, 2001
Karl
Fogel
Moshe
Bar
The Coriolis Group
ISBN 158880173X

#### Programmera PHP

1st edition
March 2002
Rasmus
Lerdorf
Kevin
Tatroe
O'Reilly & Associates
ISBN 1565926102

#### Programmera Python

2nd Edition
March 2001
Mark
Lutz
O'Reilly & Associates
ISBN 0596000855

#### Gui Programming With Python : Using the Qt Toolkit

Bk&Cd-r edition
January 2002
Boudewijn
Rempt
Opendocs Llc
ISBN 0970033044

#### Programmera Perl

Kamelboken
3rd Edition
July 2000
Larry
Wall
Tom
Christiansen
Jon
Orwant
O'Reilly & Associates
ISBN 0596000278

#### Learning Perl

Lama-boken
3rd Edition
July 15, 2001
Randal L.
Schwartz
Tom
Phoenix
O'Reilly & Associates
ISBN 0596001320

&documentation.index;