Главная » C++, C++ Builder » Антракт: инструменты CBuilder

0

Интегрированная среда разработки более всего на виду в системе CBuilder, но кроме нее есть еще много составляющих. Большинство из инструментов, составляющих среду разработки, могут быть использованы  отдельно  от  нее  для  выполнения  более  простых  задач,  и  в  этой  главе  мы  их  и

рассмотрим — компилятор, компоновщик и компилятор ресурсов. Мы также поговорим об использовании некоторых утилит, поставляемых с системой, — grep, tlib, IDEToMak и tdump. Должен вас предупредить, что большинство из инструментов системы CBuilder лучше всего работают, будучи запущенными из командной строки (в окне MS-DOS), так что если вы не чувствуете себя уверенно в этом режиме, то при работе с некоторыми инструментами у вас возникнут проблемы.

Работа с компилятором из командной строки

Первым инструментом командной строки, который мы рассмотрим, станет компилятор bcc32.exe. Этот инструмент может быть использован для работы с небольшими тестовыми программами, которые вы захотите собрать воедино, служащими

Работа с компилятором из командной строки

для проверки небольших алгоритмов и написания простейших вспомогательных программ. Этот компилятор обладает большой мощью, но вряд ли вы будете собирать большие программы из командной строки. Для использования компилятора командной строки вам надо сначала создать исходный текст программы в каком-нибудь редакторе. После чего вы просто  набираете в командной строке

bcc32 mysource.cpp

где mysource.cpp — это имя исходного файла, который вы хотите скомпилировать. Компилятор автоматически оттранслирует исходный код и, если не произойдет ошибок при компиляции, соберет его в консольное приложение. Практически любой тип кода на C++ может быть скомпилирован таким образом, от небольшой прикладной программы до утилит Unix, перенесенных в Windows 95/NT.

Давайте рассмотрим некоторые параметры компилятора командной строки. Большинство параметров вы вряд ли будете использовать при написании небольших программ, но некоторые могут оказаться весьма полезными либо при написании новой программы, либо при импортировании приложения на C++ из другой среды. В табл. 8.1 представлены наиболее часто употребляемые аргументы командной строки компилятора с пояснениями.

Таблица 8.1. Наиболее часто используемые аргументы командной строки BCC32.EXE

-C Позволяет использовать вложенные комментарии в исходном файле

-I Позволяет определить каталоги, в которых будет производиться поиск заголовочных

(.h) файлов

-L Позволяет определить каталоги, в которых будет производиться поиск подключаемых библиотек (.LIB)

-N Проверка переполнения стека. Если вы не используете этот аргумент, ваша программа может «повесить» то окно MS-DOS, в котором она запущена

-P Принуждает компилировать исходный код как код на C++. Этот параметр полезен, когда исходный файл не имеет расширения .cpp

-c Только компиляция. Используется при проверке синтаксиса и выяснения, почему же

«виснет» среда разработки

-e Изменяет имя конечного исполняемого файла. По умолчанию имя совпадает с именем первого скомпилированного модуля

-tW Создает приложение для Windows. Генерирует соответствующий код для начала и завершения приложения

-v Позволяет производить отладку на уровне исходного текста

-x Разрешает обработку исключительных ситуаций

-H Использует предварительно скомпилированные (pre-compiled) заголовочные файлы   в процессе компиляции. Может существенно ускорить процесс, если в вашей программе несколько модулей

-u Генерирует «подчеркивания» (_) для внешних имен. Очень полезен при создании DLL

для использования с другими системами, например с Delphi или Visual Basic

-w Позволяет подавлять определенные предупреждения, которые вы не хотите видеть

-U Удаляет определение заданного макроса. Полезен, если вы хотите заменить макрос функцией или удалить какой-то конкретный кусок кода #ifdef

Простой пример

Рассмотрим небольшой пример использования компилятора. Предположим, что у нас  есть алгоритм, позволяющий вычислить факториал заданного числа. Если вы подозреваете, что в коде алгоритма есть ошибка и хотите его проверить, вы можете создать небольшую тестовую программу, запускаемую из командной строки. Предположим, что у нас был следующий код:

#include <stdio.h>

#include <stdlib.h>

#include <string.h> double fact(int nNum)

{

double dFact = 1.0;

for ( int i=1; i<=nNum; ++i ) dFact *= (double)i;

return dFact;

}

int main(int argc, char **argv)

{

if (argc < 2 ) return -1;

int nNum = atoi(argv[1]);

printf("Факториал %d = %lf\n", nNum, fact(nNum)); return 0;

}

Эта программа вычисляет факториал числа, введенного пользователем. Чтобы скомпилировать ее из командной строки, вам надо набрать bcc32 fact.cpp. В результате компиляции вы увидите следующее:

d:\test>bcc32 fact.cpp Borland C++ 5.2 for Win32

Copyright (C) 1993, 1997 Borland International fact.cpp;

Turbo Link Version 2.0.68.0

Copyright (C) 1993, 1997 Borland International

В данном случае нет ни ошибок, ни предупреждений, следовательно, программа скомпилирована и собрана. Для того чтобы запустить программу, вам надо набрать

fact 5

Работа с компилятором из командной строки

в результате чего будет вычислен факториал числа 5. Вывод программы будет выглядеть

следующим образом: d:\test>fact 5

Факториал 5 = 120.000000

Компилятор командной строки бывает также полезен для тестирования в случае появившегося в CBuilder сообщения «Unknown Error #1» («Неизвестная ошибка №1»). Хотя в большинстве случаев эта проблема обычно решается поэтапным удалением файлов компиляции и сборки (*.il?), иногда она вызвана тем, что компилятор чего-то не понимает в вашем исходном коде. Перейдя в режим работы с командной строкой и скомпилировав модуль с различными аргументами,  вы можете докопаться до ключа к разгадке.

Источник: Теллес М. – Borland C++ Builder. Библиотека программиста – 1998

По теме:

  • Комментарии