Введение в разработку приложений на платформе Atom/MeeGo. Граничин О.Н - 35 стр.

UptoLike

35
Наиболее часто используемые ключи gcc
Для управления процессом предобработки кода, его компиляции, ассемблирования и линковки
могут использоваться ключи командной строки. Общее число ключей, понимаемых gcc, чрезвычайно
велико; узнать о них можно из руководство (man-страницы) по gcc и из полной документации. Мы
перечислим лишь некоторые из часто используемых ключей.
· При помощи ключа -g в исполняемый файл может быть добавлена отладочная информация.
o В качестве примера соберем пример из каталога
lab02/01
файла labMeeGo.rar:
gcc -g -o hello hello.c.
o Теперь изучим ассемблерный листинг полученного исполняемого файла с привязкой к
строкам кода:
objdump -S hello | less
· Вызов компилятора gcc с ключом -Wall приведет к включению всех предупреждений, т. е.
компилируемый код будет проверяться по расширенному набору правил. Для примера из каталога
lab02/01
файла labMeeGo.rar сборка с включением всех предупреждений будет выглядеть
следующим образом:
gcc -Wall -o hello hello.c
· При помощи ключа -I можно указать каталоги, в которых будут искаться заголовочные файлы.
· Ключ -L позволяет задать каталоги, в которых линковщик будет искать библиотеки.
· Ключ -D позволяет определить макроконстанту. В качестве примера определим макроконстанту
DEBUG:
gcc -DDEBUG -o hello hello.c.
После ее определения в коде можно использовать определить, например, блок условной
компиляции при помощи директивы макропроцессора #ifdef:
#ifdef DEBUG
… some code
#endif
В этом случае код, помещённый между директивами #ifdef и #endif будет скомпилирован лишь
в том случае, если при компиляции будет определена макроконстанта DEBUG.
· gcc использует набор правил, позволяющих оптимизировать компилируемый код по ряду
параметровтаких, как время исполнения, используемая память, размер исполняемого файла.
Любое правило оптимизации может быть включено и отключено при помощи отдельного ключа,
но для удобства часто используются 4 «уровня» оптимизации, каждому из которых соответствует
определённый набор правил оптимизации.
o Задание уровня оптимизация кода выполняется при помощи ключей -O0, -O1, -O2, -O3,
которые активизируют различные уровни оптимизации. Чем выше уровень, тем больше
множество включенных правил оптимизации.
· Ключ -Os отвечает за минимизацию размера итогового двоичного файла
· При том, что конкретный экземпляр gcc компилирует в двоичный код для определенного
семейства процессоров, он может задействовать правила оптимизации, использующие
особенности конкретной архитектуры процессора из этого семейства. Ключи -mtune=cpu, -
march=cpu, где cpuимя конкретной архитектуры, позволяют задействовать правила
оптимизации для определённой архитектуры. Так, например, при компиляции с ключом -
mtune=core2 будут включены правила оптимизации, использующие особенности процессоров
линейки Core2
4.6.4. Система сборки GNU make
4.6.4.1. Запуск сборки с использованием GNU make
Задание находится в каталоге
lab02/04
/sample файла labMeeGo.rar
.