Чтение онлайн

ЖАНРЫ

C++. Сборник рецептов

Когсуэлл Джефф

Шрифт:

Табл. 1.18. Указание опций компилятора из IDE

IDE Конфигурация
Visual C++ На страницах свойств проекта перейдите к Configuration Properties→С/С++→Command Line (командная строка) и введите опцию в поле Additional options (дополнительные опции)
CodeWarrior Неприменимо
C++Builder Неприменимо
Dev-C++ В Project Options выберите Parameters и введите опцию в поле C++ Compiler

Табл. 1.19. Указание опций компоновщика из IDE

IDE Конфигурация
Visual C++ На
страницах свойств проекта перейдите к Configuration Properties→Linker→Command Line и введите опцию в поле Additions options
Metrowerks Неприменимо
C++Builder Неприменимо
Dev-C++ В Project Options выберите Parameters и введите опцию в поле Linker
Обсуждение

Visual C++ предоставляет опции расширенной настройки через свой графический интерфейс, но также позволяет указать опции командной строки явно. CodeWarrior и C++Builder не позволяют явно устанавливать опции командной строки, но обычно это не является проблемой, так как аналогично Visual C++ они предоставляют опции расширенной настройки через свои графические интерфейсы. С другой стороны, некоторые IDE предоставляют для настройки инструментов командной строки только самый минимум, за исключением возможности явного ввода в текстовое поле опций командной строки. Dev-C++ занимает положение где-то посередине: хотя Dev-C++ предлагает больше графических опций настройки, чем некоторые IDE, предназначенные для работы с инструментарием GCC, при его использовании обычно бывает необходимо явно ввести опции командной строки.

1.21. Создание отладочной сборки

Проблема

Вы хотите собрать версию проекта, которую можно будет легко отлаживать.

Решение

В основном для получения отладочной сборки требуется:

• отключить оптимизации;

• отключить расширение встраиваемых (inline) функций;

• включить генерацию отладочной информации.

Таблица 1.20 представляет опции компилятора и компоновщика, предназначенные для отключения оптимизаций и встраивания функций, а табл. 1.21 представляет опции компилятора и компоновщика для включения отладочной информации.

Табл. 1.20. Отключение оптимизаций и встраивания из командной строки

Инструментарии Оптимизация Встраивание
GCC
– O0
– fno-inline
¹
Visual C++ Intel (Windows)
– Od
– Ob0
Intel (Linux)
– O0
– Ob0
– opt off
– inline off
Comeau (Unix)
– O0
– -no_inlining
Comeau (Windows) To же, что и у основного компилятора, но вместо тире (-) используется слеш (/)
Borland
– Od
– vi-
Digital Mars
– o+none -S
– C

¹ Эту опцию указывать не требуется, если не была указана опция

– O3
.

Табл. 1.21. Опции командной строки для включения отладочной информации

Инструментарии Опции компилятора Опции компоновщика
Comeau (Unix) GCC – g – g
Intel (Linux) Metrowerks
Visual C++ Intel (Windows) См.
табл. 1.22
См. табл. 1 22
Comeau (Windows) To же, что и у основного компилятора, но вместо тире (-) используется слеш (/) То же, что и у основного компилятора, но вместо тире (-) используется слеш (/)
Borland – v – v
Digital Mars – g – co

Табл. 1.22. Включение отладочной информации при использовании Visual C++ или Intel для Windows

Опции компилятора Опции компоновщика IDE options¹ Описание
– Z7 – debug C7 Compatible (совместимость с C7) Отладочная информация сохраняется в файлах .obj и .exe
– Zi [-Fd<pdb-file-for-obj>]. – debug[-pdb:<pdb-file-for-exe>] Program Database (база данных программы) Отладочная информация сохраняется в файлах .pdb; опция в квадратных скобках используется для указания файлов .pdb
– Zi [-Fd<pdbfile-for-obj>] – debug [-pdb:<pdb-file-for-exe>] Program Database for Edit & Continue (база данных программы для редактирования и продолжения) Отладочная информация сохраняется в файлах .pdb; опция в квадратных скобках используется для указания файлов .pdb. Программа может быть перекомпилирована во время сессии отладки

¹ Чтобы получить доступ к этим опциям, перейдите к Configuration Properties→С/С++→ General→Debug Information Format (формат отладочной информации).

BoostBuild предоставляет похожий механизм создания отладочной сборки: просто добавьте к требованиям цели

<variant>debug
или используйте опцию командной строки variant=debug, которую можно сократить до просто debug.

Некоторые IDE также предоставляют простой способ создания отладочной сборки. Например, при создании нового проекта в Visual C++ IDE автоматически генерирует конфигурации для отладочной и окончательной сборок. Чтобы запросить отладочную сборку, просто выберите в меню Build опцию Configuration Manager и в качестве активной выберите конфигурацию Debug. Также можно выбрать Debug в раскрывающемся списке конфигураций на стандартной панели инструментов. При следующей сборке проекта будет создана отладочная сборка.

Аналогично при создании проекта в CodeWarrior с помощью одного из шаблонов проектов Metrowerks, называемых «принадлежности» (stationery), IDE автоматически генерирует отладочную и окончательную цели. Имя отладочной цели может быть разным, но оно всегда должно включать слово «debug». Чтобы запросить отладочную сборку, в меню Project выберите пункт Set Default Target (установить цель по умолчанию), а затем выберите элемент меню, соответствующий отладочной цели. Также можно выбрать отладочную цель в раскрывающемся списке целей в окне проекта.

C++Builder не поддерживает множественных конфигураций для одного проекта, но он предоставляет простой способ создания отладочной сборки. Чтобы запросить отладочную сборку, перейдите в Project Options→Compiler и нажмите на Full debug (полная отладка). Это отключит все оптимизации и встраивание и включит отладочную информацию.

При использовании IDE, которая не предоставляет готовых отладочной и окончательной конфигураций, такой как Dev-C++, или если вам требуется получить дополнительный контроль над параметрами проекта, обратитесь к таблицам с 1.23 до 1.25.

Поделиться с друзьями: