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++ | На
|
| 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 |
¹ Эту опцию указывать не требуется, если не была указана опция
Табл. 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 предоставляет похожий механизм создания отладочной сборки: просто добавьте к требованиям цели
Некоторые 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.