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

From KDE Wiki Sandbox
(Importing a new version from external source)
No edit summary
 
(19 intermediate revisions by 3 users not shown)
Line 3: Line 3:
== Збирання (компіляція) проектів з нетиповими Makefile ==
== Збирання (компіляція) проектів з нетиповими Makefile ==


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.
У багатьох проектах спосіб збирання файлів коду та визначення тих файлів, які слід повторно зібрати у разі внесення змін до коду, виконується за допомогою файлів Makefile, обробку яких здійснює програма '''make''' (див., наприклад, [http://www.gnu.org/software/make/ GNU make]). У простих проектах нескладно створити такий файл власноруч. У великих проектах створення таких файлів часто покладається на '''GNU autotools''' (autoconf, autoheader, automake). У цьому розділі ми припускатимемо, що файл Makefile вашого проекту вже створено, вам просто потрібно вказати '''KDevelop''', у який спосіб слід взаємодіяти з цим файлом.


{{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_(uk)|1='''KDevelop''' 5.x не може працювати з '''GNU autotools''' безпосередньо на час написання цього підручника. Якщо відповідні інструменти використовуються у вашому проекті, вам доведеться запускати скрипт <code>./configure</code> або подібний до нього скрипт з командного рядка вручну. Якщо ви бажаєте зробити це з самого вікна '''KDevelop''', відкрийте панель інструмента '''Konsole''' (якщо потрібно, додайте цю панель у нижній частині головного вікна за допомогою пункту меню <menuchoice>Вікна -> Додати панель інструмента</menuchoice>), у якій можна буде віддати команду оболонці і вкажіть команду <code>./configure</code>.}}


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
Насамперед, слід повідомити '''KDevelop''' про цілі збирання у вашому файлі Makefile. Передбачено два способи: вибір окремих цілей Makefile і вибір набору цілей, які потрібно збирати доволі часто. Для реалізації обох цих способів слід відкрити вікно інструмента '''Проекти''' натисканням заголовка вкладки <menuchoice>Проекти</menuchoice>, розташованої у лівій частині головного вікна '''KDevelop''' (якщо цього заголовка немає у вікні вашої програми, вище наведено настанови щодо додавання кнопки відповідного інструмента). Панель '''Проекти''' складається з двох частин. У верхній частині з заголовком '''Проекти''' показано список всіх ваших проектів, у якому можна розгортати пункти каталогів. У нижній частині з заголовком '''Вибір проекту''' показано список набори проектів, які буде зібрано, якщо ви виберете пункт меню <menuchoice>Проект -> Зібрати позначене</menuchoice> або натиснете клавішу <keycap>F8</keycap>; нижче ми поговоримо про цю частину докладніше.
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 ===
=== Збирання окремих цілей з Makefile ===


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).
У верхній частині панелі проектів розгорніть список одного з проектів, наприклад, того, для якого слід виконати збирання однієї з цілей Makefile. У списку ви побачите піктограми каталогів, файлів у каталозі верхнього рівня проекту, цілі Makefile, які вдалося визначити '''KDevelop'''. На знімку вікна ці категорії показано праворуч. Зауважте, що '''KDevelop''' певною мірою ''розуміє'' синтаксис Makefile і тому сам визначає цілі, визначені у файлі Makefile (хоча це розуміння і має певні обмеження: не буде показано складені або неявні цілі).


[[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.)
Щоб зібрати будь-яку з цілей у списку, наведіть на її пункт вказівник миші, клацніть правою кнопкою миші і виберіть у контекстному меню пункт <menuchoice>Зібрати</menuchoice>. Наприклад, виконання цих дій для цілі «clean» призведе до виконання команди «make clean». Повідомлення щодо виконання дій можна буде побачити у підвікні '''Збирання'''. Це вікно відповідає інструменту '''Зібрати''', отже його можна закрити і пізніше відкрити за допомогою пункту <menuchoice>Зібрати</menuchoice>, розташованої на панелі інструментів головного вікна. На нашому знімку цю кнопку розташовано праворуч внизу.
<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 ===
=== Вибір збірки цілей з Makefile для регулярного збирання ===


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
Клацання правою кнопкою миші на окремих пунктах цілей швидко втомлює. Набагато простіше було б створити для одного або декількох проектів окремі цілі, які постійно збираються протягом розробки. З цією метою у середовищі реалізовано «збирання позначених цілей»: збирання наборів цілей Makefile у певному порядку у відповідь на натискання кнопки <menuchoice>Зібрати позначене</menuchoice> у верхній частині вікна, вибір пункту меню <menuchoice>Проект -> Зібрати позначене</menuchoice> або натискання клавіші <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.
Список позначених цілей Makefile показано у нижній частині панелі '''Проекти'''. Типово, позначено буде всі проекти, але ви можете змінити список. Наприклад, якщо у вашому списку проектів три проекти (базова бібліотека L і дві програми, A і B), але зараз ви працюєте лише над проектом A, ви можете вилучити проект B зі списку: позначте його пункт і натисніть кнопку {{Minus}}. Крім того, вам, ймовірно, захочеться, щоб бібліотеку L було зібрано перед проектом A. Змініть порядок пунктів у списку за допомогою кнопок, розташованих праворуч від списку. Ви також можете додати певну ціль Makefile до позначених: клацніть правою кнопкою миші у вільному місці списку і виберіть у контекстному меню пункт <menuchoice>Додати до набору збирання</menuchoice> або просто позначте відповідний пункт і натисніть кнопку {{Plus}}, розташовану над списком позначених цілей.
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''' передбачено можливість визначення дій під час збирання позначених цілей. Щоб виконати налаштування, скористайтеся пунктом <menuchoice>Проект -> Відкрити налаштування</menuchoice>. У налаштуваннях ви, наприклад, можете визначити кількість завдань, які «make» може виконувати одночасно (якщо на вашому комп’ютері встановлено, скажімо, 8 процесорних ядер, введення числа 8 у відповідне поле буде доречним вибором). У діалоговому вікні <menuchoice>Типовою ціллю make</menuchoice> є ціль Makefile, використана для ''всіх'' цілей у позначеному наборі.
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 ===
=== Обробка повідомлень про помилки ===


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.
Якщо під час компіляції буде виявлено помилку, просто наведіть вказівник миші на повідомлення про помилку і клацніть лівою кнопкою миші або скористайтеся пунктом меню <menuchoice>Навігація -> Перейти до наступної позначки виведення</menuchoice>. Курсор буде переведено до рядка (і, якщо вказано, позиції у рядку), де було виявлено помилку. Залежно від типу помилки, '''KDevelop''' може також запропонувати вам декілька варіантів дій для її виправлення, наприклад, за допомогою оголошення неоголошеної змінної, якщо таку змінну було виявлено.


{{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=Створення коду за допомогою шаблонів | nexttext=Запуск програм
| index=Special:MyLanguage/KDevelop4/Manual | indextext=Back to menu
| index=Special:MyLanguage/KDevelop5/Manual | indextext=Повернутися до меню
}}
}}


[[Category:Development]]
[[Category:Розробка/uk]]

Latest revision as of 12:33, 4 April 2020

Other languages:

Збирання (компіляція) проектів з нетиповими Makefile

У багатьох проектах спосіб збирання файлів коду та визначення тих файлів, які слід повторно зібрати у разі внесення змін до коду, виконується за допомогою файлів Makefile, обробку яких здійснює програма make (див., наприклад, GNU make). У простих проектах нескладно створити такий файл власноруч. У великих проектах створення таких файлів часто покладається на GNU autotools (autoconf, autoheader, automake). У цьому розділі ми припускатимемо, що файл Makefile вашого проекту вже створено, вам просто потрібно вказати KDevelop, у який спосіб слід взаємодіяти з цим файлом.

Зауваження
KDevelop 5.x не може працювати з GNU autotools безпосередньо на час написання цього підручника. Якщо відповідні інструменти використовуються у вашому проекті, вам доведеться запускати скрипт ./configure або подібний до нього скрипт з командного рядка вручну. Якщо ви бажаєте зробити це з самого вікна KDevelop, відкрийте панель інструмента Konsole (якщо потрібно, додайте цю панель у нижній частині головного вікна за допомогою пункту меню Вікна -> Додати панель інструмента), у якій можна буде віддати команду оболонці і вкажіть команду ./configure.


Насамперед, слід повідомити KDevelop про цілі збирання у вашому файлі Makefile. Передбачено два способи: вибір окремих цілей Makefile і вибір набору цілей, які потрібно збирати доволі часто. Для реалізації обох цих способів слід відкрити вікно інструмента Проекти натисканням заголовка вкладки Проекти, розташованої у лівій частині головного вікна KDevelop (якщо цього заголовка немає у вікні вашої програми, вище наведено настанови щодо додавання кнопки відповідного інструмента). Панель Проекти складається з двох частин. У верхній частині з заголовком Проекти показано список всіх ваших проектів, у якому можна розгортати пункти каталогів. У нижній частині з заголовком Вибір проекту показано список набори проектів, які буде зібрано, якщо ви виберете пункт меню Проект -> Зібрати позначене або натиснете клавішу F8; нижче ми поговоримо про цю частину докладніше.

Збирання окремих цілей з Makefile

У верхній частині панелі проектів розгорніть список одного з проектів, наприклад, того, для якого слід виконати збирання однієї з цілей Makefile. У списку ви побачите піктограми каталогів, файлів у каталозі верхнього рівня проекту, цілі Makefile, які вдалося визначити KDevelop. На знімку вікна ці категорії показано праворуч. Зауважте, що KDevelop певною мірою розуміє синтаксис Makefile і тому сам визначає цілі, визначені у файлі Makefile (хоча це розуміння і має певні обмеження: не буде показано складені або неявні цілі).

Щоб зібрати будь-яку з цілей у списку, наведіть на її пункт вказівник миші, клацніть правою кнопкою миші і виберіть у контекстному меню пункт Зібрати. Наприклад, виконання цих дій для цілі «clean» призведе до виконання команди «make clean». Повідомлення щодо виконання дій можна буде побачити у підвікні Збирання. Це вікно відповідає інструменту Зібрати, отже його можна закрити і пізніше відкрити за допомогою пункту Зібрати, розташованої на панелі інструментів головного вікна. На нашому знімку цю кнопку розташовано праворуч внизу.

Вибір збірки цілей з Makefile для регулярного збирання

Клацання правою кнопкою миші на окремих пунктах цілей швидко втомлює. Набагато простіше було б створити для одного або декількох проектів окремі цілі, які постійно збираються протягом розробки. З цією метою у середовищі реалізовано «збирання позначених цілей»: збирання наборів цілей Makefile у певному порядку у відповідь на натискання кнопки Зібрати позначене у верхній частині вікна, вибір пункту меню Проект -> Зібрати позначене або натискання клавіші F8.

Список позначених цілей Makefile показано у нижній частині панелі Проекти. Типово, позначено буде всі проекти, але ви можете змінити список. Наприклад, якщо у вашому списку проектів три проекти (базова бібліотека L і дві програми, A і B), але зараз ви працюєте лише над проектом A, ви можете вилучити проект B зі списку: позначте його пункт і натисніть кнопку . Крім того, вам, ймовірно, захочеться, щоб бібліотеку L було зібрано перед проектом A. Змініть порядок пунктів у списку за допомогою кнопок, розташованих праворуч від списку. Ви також можете додати певну ціль Makefile до позначених: клацніть правою кнопкою миші у вільному місці списку і виберіть у контекстному меню пункт Додати до набору збирання або просто позначте відповідний пункт і натисніть кнопку , розташовану над списком позначених цілей.

У KDevelop передбачено можливість визначення дій під час збирання позначених цілей. Щоб виконати налаштування, скористайтеся пунктом Проект -> Відкрити налаштування. У налаштуваннях ви, наприклад, можете визначити кількість завдань, які «make» може виконувати одночасно (якщо на вашому комп’ютері встановлено, скажімо, 8 процесорних ядер, введення числа 8 у відповідне поле буде доречним вибором). У діалоговому вікні Типовою ціллю make є ціль Makefile, використана для всіх цілей у позначеному наборі.

Обробка повідомлень про помилки

Якщо під час компіляції буде виявлено помилку, просто наведіть вказівник миші на повідомлення про помилку і клацніть лівою кнопкою миші або скористайтеся пунктом меню Навігація -> Перейти до наступної позначки виведення. Курсор буде переведено до рядка (і, якщо вказано, позиції у рядку), де було виявлено помилку. Залежно від типу помилки, KDevelop може також запропонувати вам декілька варіантів дій для її виправлення, наприклад, за допомогою оголошення неоголошеної змінної, якщо таку змінну було виявлено.