KDevelop5/Manual/Building (compiling) projects with custom Makefiles/da: Difference between revisions

From KDE Wiki Sandbox
(Importing a new version from external source)
 
No edit summary
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages />  
<languages />  


== Building (compiling) projects with custom Makefiles ==
== Byg (kompilér) projekter med dine egne makefiler ==


Many projects describe how source files have to be compiled (and which files have to be recompiled once a source or header file changes) using Makefiles that are interpreted by the '''make''' program (see, for example, [http://www.gnu.org/software/make/ GNU make]). For simple projects, it is often very easy to set up such a file by hand. Larger projects often integrate their Makefiles with the '''GNU autotools''' (autoconf, autoheader, automake). In this section, let us simply assume that you have a Makefile for your project and you want to teach '''KDevelop''' how to interact with it.
Mange projekter beskriver, hvordan kildefiler skal kompileres (og hvilke filer, der skal kompileres når en kilde- eller headerfil ændres) i Makefiler, som fortolkes af programmet '''make''' (se for eksempel [http://www.gnu.org/software/make/ GNU make]). For enkle projekterer det ofte ret let at lave sådan en fil i hånden. Større projekter integrerer ofte deres makefiler med '''GNU autotools''' (autoconf, autoheader, automake). I dette afsnit vil vi simpelthen antage at du har en Makefile til dit projekt og vil lære '''KDevelop''' at arbejde sammen med den.


{{Note|1='''KDevelop''' 4.x doesn't know about the '''GNU autotools''' at the time this section is written. If your project uses them, you will have to run <code>./configure</code> or any of the other related commands by hand on a command line. If you want to do this within '''KDevelop''', open the '''Konsole''' tool (if necessary add it to the perimeter of the main window using the menu <menuchoice>Windows -> Add tool view</menuchoice>) that gives you a shell window view and run <code>./configure</code> from the command line in this view.}}
{{Note/da|1='''KDevelop''' 5.x kender ikke til '''GNU autotools''' mens dette skrives. Hvis dit projekt bruger dem, så bliver du selv nødt til at køre <code>./configure</code> eller andre relaterede kommandoer på en kommandolinje. Hvis du ønsker at gøre dette inde fra '''KDevelop''', så åbn værktøjet '''Konsole''' (føj det til hovedvinduets kant om nødvendigt ved at vælge menuen <menuchoice>Vindue -> Tilføj værktøjsvisning...</menuchoice>); det giver dig en skalvinduesvisning. Kør så <code>./configure</code> på kommandolinjen i denne visning.}}


The first step is to teach '''KDevelop''' about targets in your Makefiles. There are two ways to do that: selecting individual Makefile targets, and choosing a set of targets you may want to build frequently. For both approaches, open
Det første skridt er at lære '''KDevelop''' om mål i dine Makefiler. Der er to måder at gøre det på: du kan angive individuelle Makefile-mål og du kan vælge en gruppe af mål, som du ofte vil bygge. Til begge fremgangsmåder åbnes værktøjet '''Projekter''' ved at klikke på knappen <menuchoice>Projekter</menuchoice> i hovedvinduets kant (se ovenfor, hvordan du tilføjer knappen, hvis den ikke allerede er der). Værktøjsvisningen '''Projekter''' har to dele: den øverste halvdel med titlen '''Projekter''' indeholder en liste med alle dine projekter og lader dig udvide det underliggende mappetræ. Den nederste del med titlen '''Projektvalg''' indeholder en liste med de projekter, som vil blive bygget, hvis du vælger menuen <menuchoice>Projekt -> Byg valgte</menuchoice> eller taster <keycap>F8</keycap>. Dette kommer vi tilbage til nedenfor.
the '''Projects''' tool by clicking on the <menuchoice>Projects</menuchoice> button on the perimeter of '''KDevelop's''' main window (if you don't have this button see above how to add a tool's button there). The '''Projects''' tool window has two parts: the top half &mdash; titled '''Projects''' &mdash; lists all of your projects and let's you expand the underlying directory trees. The bottom half &mdash; titled '''Project Selection''' &mdash; lists a subset of those projects that will be built if you choose the menu item <menuchoice>Project -> Build selection</menuchoice> or hit <keycap>F8</keycap>; we'll come back to this part below.
<span id="Building individual Makefile targets"></span>
<span id="Building individual Makefile targets"></span>
=== Building individual Makefile targets ===
=== Byg individuelle Makefile-mål ===


In the top part of the project view, expand the sub-tree for one project, let's say the one for which you want to run a particular Makefile target. This will give you icons for (i) directories under this project, (ii) files in the top-level directory for this project, (iii) Makefile targets '''KDevelop''' can identify. These categories are shown in the picture at right. Note that '''KDevelop''' ''understands'' Makefile syntax to a certain degree and therefore can offer you targets defined in this Makefile (though this understanding has its limits if targets are composed or implicit).
I den øverste del af projektvisningen udvider du undertræet for et projekt, lad os sige det, for hvilket du vil bygge et bestemt makefile-mål. Dette vil give dig ikoner for
* mapper i dette projekt
* filer i projektets topniveau-mappe
* makefile-mål, som '''KDevelop''' kan finde
Disse kategorier vises i billedet herunder. Bemærk, at '''KDevelop''' til en vis grad ''forstår'' makefile-syntaks og derfor kan vise dig mål, som er defineret makefilen (selvom denne forståelse er begrænset, hvis målene er sammensatte eller implicitte).


[[Image:kdevelop-1a.png|thumb|500px|center]]
[[File:Kdevelop-makefile-project.png|500px|thumb|center]]


To build any of the targets listed there, click on it with the right mouse button and select <menuchoice>Build</menuchoice>. For example, doing this with the "clean" target will simply execute "make clean". You can see this happening in the subwindow titled '''Build''' that opens up, showing the command and the output. (This window corresponds to the '''Build''' tool, so you can close and later re-open the window using the <menuchoice>Build</menuchoice> tool button on the perimeter of the main window. It is shown at the bottom right of the picture.)
For at bygge et af målene i listen højre-klikker du på det og vælger <menuchoice>Byg</menuchoice>: Gør du for eksempel det på målet "clean", så udføres kommandoen "make clean". Du kan se det ske i undervinduet med titlen '''Byg''', som dukker op og viser dig kommandoen og dens output. (Dette vindue svarer til værktøjet '''Byg''', så du kan lukke det og senere genåbne det ved at bruge værktøjsknappen <menuchoice>Byg</menuchoice> i hovedvinduets kant. Dette vises nederst til højre i billedet.)
<span id="Selecting a collection of Makefile targets for repeated building"></span>
<span id="Selecting a collection of Makefile targets for repeated building"></span>
=== Selecting a collection of Makefile targets for repeated building ===
=== Vælg en samling af Makefile-mål til gentagen bygning ===


Right-clicking on individual Makefile targets every time you want to build something will quickly get old. Rather, we'd like to have individual targets for one or more of the projects in the session that we can repeatedly build without much mouse work. This is where the concept of "Build target selections" comes in: it is a collection of Makefile targets that are built one-after-the-other whenever you hit the <menuchoice>Build selection</menuchoice> button in the button list at the top, select the <menuchoice>Project -> Build selection</menuchoice> menu item, or
Det bliver hurtigt trættede at højreklikke på individuelle Makefile-mål hver gang du vil bygge noget. I stedet vil vi gerne have individuelle mål for et eller flere projekter i sessionen, som vi kan bygge igen og igen uden for meget arbejde med musen. Her kommer begrebet "Byg måludvalg" ind i billedet: det er en samling af Makefile-mål, som bliver bygget et for et når du klikker på knappen <menuchoice>Byg valgte</menuchoice> i værktøjslisten foroven, vælger menuen <menuchoice>Projekt -> Byg valgte</menuchoice> eller taster <keycap>F8</keycap>.
hit the <keycap>F8</keycap> function key.


The list of selected Makefile targets is shown in the bottom half of the '''Projects''' tool view.
Listen af valgte Makefile-mål vises i den nederste halvdel af værktøjsvisningen '''Projekter'''. Som standard indeholder udvalget alle projekter, men du kan ændre dette. Hvis din liste af projekter for eksempel indeholder tre projekter (et basisbibliotek L og to programmer A og B), men du i øjeblikket kun arbejder på projekt A, så kan du fjerne projekt B fra udvalgslisten ved at fremhæve det i udvalgslisten og klikke på knappen {{Minus}}. Desuden vil du nok sikre dig, at biblioteket L bliver bygget før projekt A ved at flytte emnerne i udvalgslisten op og ned ved brug af knapperne til højre for listen. Du kan også føje et bestemt Makefile-mål til liste ved at højreklikke på det og vælge <menuchoice>Tilføj til buildset</menuchoice> eller blot fremhæve det og klikke på knappen {{Plus}} lige over listen af valgte mål.
By default, the selection contains all projects, but you can change that. For example, if your list of projects contains three projects (a base library L and two applications A and B), but you're currently only working on project A, then you may want to remove project B from the selection by highlighting it in the selection and hitting the {{Minus}} button. Furthermore, you probably want to make sure that the library L is built before  project A by moving entries in the selection up and down using the buttons to the right of the list. You can also get a particular Makefile target into the selection by right-clicking onto it and selecting <menuchoice>Add to buildset</menuchoice>, or just highlighting it and hitting the {{Plus}} button just above the list of selected targets.


'''KDevelop''' allows you to configure what to do whenever you build the selection. To this end, use the menu item <menuchoice>Project -> Open configuration</menuchoice>. There, you can for example select the number of simultaneous
'''KDevelop''' lader dig indstille, hvad den skal gøre, når du bygge udvalget. Til dette bruges menuen <menuchoice>Projekt -> Åben indstillinger...</menuchoice>. Der kan du for eksempel vælge antallet af samtidige jobs, som "make" skal udføre &mdash; hvis din computer fx har 8 processorkerner, så vil det være nyttigt at skrive 8 i dette felt. I denne dialog er <menuchoice>Standard make-mål</menuchoice> et Makefile-mål, som bruges til ''alle'' mål i udvalget.
jobs "make" should execute &mdash; if your computer has, say, 8 processor cores, then entering 8 in this field would be a useful choice. In this dialog, the <menuchoice>Default make target</menuchoice> is a Makefile target used for ''all'' targets in the selection.
<span id="What to do with error messages"></span>
<span id="What to do with error messages"></span>
=== What to do with error messages ===
=== Hvad gør man med fejlmeddelelser ===


If the compiler encounters an error message, simply click on the line with the error message or use Navigation - Jump to Next Outputmark item in the main menu and the editor will jump to the line (and if available column) where the error was reported. Depending on the error message, '''KDevelop''' may also offer you several possible actions to fix the error, for example by declaring a previously undeclared variable if an unknown symbol was found.
Hvis kompileren støder på en fejlmeddelelse, så skal du blot klikke på linjen med fejlmeddelelsen eller bruge <menuchoice>Navigation -> Jump to Next Outputmark</menuchoice> for at få editoren til at hoppe til den linje (og position, hvis den er tilgængelig), hvor fejlen blev rapporteret. Afhængigt af fejlmeddelelsen kan '''KDevelop''' også foreslå forskellige ting, der kan rette fejlen, for eksempel at erklære hidtil uerklærede variable, hvis et ukendt symbol blev fundet.


{{Prevnext2
{{Prevnext2
| prevpage=Special:MyLanguage/KDevelop4/Manual/Code_generation_with_templates | nextpage=Special:MyLanguage/KDevelop4/Manual/Running_programs
| prevpage=Special:MyLanguage/KDevelop5/Manual/Code_generation_with_templates | nextpage=Special:MyLanguage/KDevelop5/Manual/Running_programs
| prevtext=Code generation with templates | nexttext=Running programs
| prevtext=Kodegenerering med skabeloner | nexttext=Kør programmer
| index=Special:MyLanguage/KDevelop4/Manual | indextext=Back to menu
| index=Special:MyLanguage/KDevelop5/Manual | indextext=Indholdsfortegnelse
}}
}}


[[Category:Development]]
[[Category:Udvikling/da]]

Latest revision as of 10:03, 7 April 2020

Other languages:

Byg (kompilér) projekter med dine egne makefiler

Mange projekter beskriver, hvordan kildefiler skal kompileres (og hvilke filer, der skal kompileres når en kilde- eller headerfil ændres) i Makefiler, som fortolkes af programmet make (se for eksempel GNU make). For enkle projekterer det ofte ret let at lave sådan en fil i hånden. Større projekter integrerer ofte deres makefiler med GNU autotools (autoconf, autoheader, automake). I dette afsnit vil vi simpelthen antage at du har en Makefile til dit projekt og vil lære KDevelop at arbejde sammen med den.

Note
KDevelop 5.x kender ikke til GNU autotools mens dette skrives. Hvis dit projekt bruger dem, så bliver du selv nødt til at køre ./configure eller andre relaterede kommandoer på en kommandolinje. Hvis du ønsker at gøre dette inde fra KDevelop, så åbn værktøjet Konsole (føj det til hovedvinduets kant om nødvendigt ved at vælge menuen Vindue -> Tilføj værktøjsvisning...); det giver dig en skalvinduesvisning. Kør så ./configure på kommandolinjen i denne visning.


Det første skridt er at lære KDevelop om mål i dine Makefiler. Der er to måder at gøre det på: du kan angive individuelle Makefile-mål og du kan vælge en gruppe af mål, som du ofte vil bygge. Til begge fremgangsmåder åbnes værktøjet Projekter ved at klikke på knappen Projekter i hovedvinduets kant (se ovenfor, hvordan du tilføjer knappen, hvis den ikke allerede er der). Værktøjsvisningen Projekter har to dele: den øverste halvdel med titlen Projekter indeholder en liste med alle dine projekter og lader dig udvide det underliggende mappetræ. Den nederste del med titlen Projektvalg indeholder en liste med de projekter, som vil blive bygget, hvis du vælger menuen Projekt -> Byg valgte eller taster F8. Dette kommer vi tilbage til nedenfor.

Byg individuelle Makefile-mål

I den øverste del af projektvisningen udvider du undertræet for et projekt, lad os sige det, for hvilket du vil bygge et bestemt makefile-mål. Dette vil give dig ikoner for

  • mapper i dette projekt
  • filer i projektets topniveau-mappe
  • makefile-mål, som KDevelop kan finde

Disse kategorier vises i billedet herunder. Bemærk, at KDevelop til en vis grad forstår makefile-syntaks og derfor kan vise dig mål, som er defineret makefilen (selvom denne forståelse er begrænset, hvis målene er sammensatte eller implicitte).

For at bygge et af målene i listen højre-klikker du på det og vælger Byg: Gør du for eksempel det på målet "clean", så udføres kommandoen "make clean". Du kan se det ske i undervinduet med titlen Byg, som dukker op og viser dig kommandoen og dens output. (Dette vindue svarer til værktøjet Byg, så du kan lukke det og senere genåbne det ved at bruge værktøjsknappen Byg i hovedvinduets kant. Dette vises nederst til højre i billedet.)

Vælg en samling af Makefile-mål til gentagen bygning

Det bliver hurtigt trættede at højreklikke på individuelle Makefile-mål hver gang du vil bygge noget. I stedet vil vi gerne have individuelle mål for et eller flere projekter i sessionen, som vi kan bygge igen og igen uden for meget arbejde med musen. Her kommer begrebet "Byg måludvalg" ind i billedet: det er en samling af Makefile-mål, som bliver bygget et for et når du klikker på knappen Byg valgte i værktøjslisten foroven, vælger menuen Projekt -> Byg valgte eller taster F8.

Listen af valgte Makefile-mål vises i den nederste halvdel af værktøjsvisningen Projekter. Som standard indeholder udvalget alle projekter, men du kan ændre dette. Hvis din liste af projekter for eksempel indeholder tre projekter (et basisbibliotek L og to programmer A og B), men du i øjeblikket kun arbejder på projekt A, så kan du fjerne projekt B fra udvalgslisten ved at fremhæve det i udvalgslisten og klikke på knappen . Desuden vil du nok sikre dig, at biblioteket L bliver bygget før projekt A ved at flytte emnerne i udvalgslisten op og ned ved brug af knapperne til højre for listen. Du kan også føje et bestemt Makefile-mål til liste ved at højreklikke på det og vælge Tilføj til buildset eller blot fremhæve det og klikke på knappen lige over listen af valgte mål.

KDevelop lader dig indstille, hvad den skal gøre, når du bygge udvalget. Til dette bruges menuen Projekt -> Åben indstillinger.... Der kan du for eksempel vælge antallet af samtidige jobs, som "make" skal udføre — hvis din computer fx har 8 processorkerner, så vil det være nyttigt at skrive 8 i dette felt. I denne dialog er Standard make-mål et Makefile-mål, som bruges til alle mål i udvalget.

Hvad gør man med fejlmeddelelser

Hvis kompileren støder på en fejlmeddelelse, så skal du blot klikke på linjen med fejlmeddelelsen eller bruge Navigation -> Jump to Next Outputmark for at få editoren til at hoppe til den linje (og position, hvis den er tilgængelig), hvor fejlen blev rapporteret. Afhængigt af fejlmeddelelsen kan KDevelop også foreslå forskellige ting, der kan rette fejlen, for eksempel at erklære hidtil uerklærede variable, hvis et ukendt symbol blev fundet.