Глава 5. Сборка (компиляция) проектов с нестандартными Makefile

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

Примечание

На момент написания этого раздела руководства KDevelop 4.x не поддерживает работу с инструментами GNU autotools. Если они используются в проекте, потребуется запустить ./configure или подобный сценарий вручную из командной строки. Если следует сделать это внутри KDevelop, откройте панель Konsole (при необходимости добавив её по периметру главного окна: ОкноДобавить панель…) и в появившемся командном окне укажите команду ./configure.

Сначала необходимо указать KDevelop на цели сборки в файлах Makefile. Это можно сделать двумя способами: выбрать отдельные цели Makefile или выбрать набор целей, которые требуется собирать часто. Для применения обоих способов следует открыть панель Проекты (нажмите кнопку Проекты; если такой кнопки ещё нет по периметру окна, добавьте её согласно приведённым выше инструкциям). Панель Проекты состоит из двух частей. В верхней части (Проекты) приводится список всех проектов, пункты каталогов можно разворачивать. В нижней части (Последовательность сборки) находятся те проекты, которые будут собраны при выборе пункта меню ПроектСобрать выделенное или нажатии клавиши F8; эта часть будет более подробно рассмотрена далее.

Сборка отдельных целей Makefile

В верхней части панели проекта разверните список для одного из проектов (например, того, для которого следует выполнить сборку одной из целей Makefile). В списке будут видны значки каталогов этого проекта, файлов в каталоге верхнего уровня этого проекта, а также целей Makefile, которые удалось определить KDevelop. На изображении эти категории показаны справа. Обратите внимание, что KDevelop в некоторой мере понимает синтаксис Makefile и, следовательно, может предлагать заданные в этом файле Makefile цели (такое понимание имеет свои границы: не будут показаны сборные или неявные цели).

Чтобы собрать какую-либо из целей в списке, щёлкните по ней правой кнопкой мыши и выберите в контекстном меню пункт Собрать. Выполнение этих действий, например, для цели «clean» приведёт к выполнению команды «make clean». Сообщения о выполнении действий будут показаны в дочернем окне Сборка. (Это окно соответствует инструменту Собрать, поэтому его можно закрыть и затем снова открыть с помощью кнопки Собрать на панели инструментов главного окна. Оно показано в нижней правой части изображения.)