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

From KDE Wiki Sandbox
Revision as of 12:32, 4 April 2020 by Yurchor (talk | contribs)
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 може також запропонувати вам декілька варіантів дій для її виправлення, наприклад, за допомогою оголошення неоголошеної змінної, якщо таку змінну було виявлено.