Студопедия — Компиляция, компоновка и выполнение проекта
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Компиляция, компоновка и выполнение проекта






Эти операции могут быть выполнены или через меню Build главного окна, или с помощью кнопок панели инструментов. Опишем кратко основные команды меню Build:

¨ Compile – компиляция выбранного файла. Результаты компиляции выводятся в окно Output

¨ Build – компоновка проекта. Компилируются все файлы, в которых произошли изменения с момента последней компоновки. После компиляции происходит сборка (link) всех объектных модулей, включая библиотечные, в результирующий исполняемый файл. Сообщения об ошибках компонов­ки выводятся в окно Output. Если обе фазы компоновки завершились без ошибок, то созданный исполняемый файл с расширением.ехе может быть запущен на выполнение.

¨ Rebuild All – то же, что и Build, но компилируются все файлы проекта независимо от того, были ли в них произведены изменения.

СОВЕТ: Если при компоновке многофайлового проекта посредством команды Build вы получаете сообщения об ошибках компиляции или сборки, которые вы не можете объяснить, то мы настоятельно рекомендуем вам воспользоваться командой Rebuild All.

¨ Execute – выполнение исполняемого файла, созданного в результате компоновки проекта.

Операции Compile, Build и Execute удобнее выполнять через соответствующие кнопки панели инструментов Build Mini Bar, которая в увеличенном виде показана на рисунке 4.

Compile(Ctrl +F7) Build(F7) Execute Program(Ctrl +F5)

Go(F5) Insert/Remove BreakPoint(F9)

Рисунок 4-Панель инструментов Build MiniBar

Чтобы пощелкать по этим кнопкам, вернемся к нашему проекту First.

Откомпилируйте проект, щелкнув на кнопке Build (F7). Диагностические сообще­ния компилятора и сборщика отображаются в окне вывода Output. Мы надеемся, что у вас все будет в порядке[4] и последняя строка в окне вывода будет выглядеть так:

First.exe - 0 error(s), 0 warning(s)

Теперь запустите приложение на выполнение, щелкнув на кнопке Execute Program (Ctrl+F5).

Появится окно приложения First, изображенное на рисунке 5.

Рисунок 5-Консольное окно приложения First.exe

На приглашение ввести строку введите любую строку, например Hello, World!, и нажмите Enter. Программа должна вывести на экран то, что показано на рисунке 6.

Рисунок 6-Вид окна после ввода строки

Мы не будем здесь разбираться, почему программа вывела «обрезанную» строку Hello, проблема ввода-вывода строк рассматривается на лабораторной работе № 5.

Попробуйте заменить в программе оператор вывода

cout << "Welcome to C++!" << endl;

следующим оператором:

cout << "Добро пожаловать в C++!" << endl;

Откомпилируйте (точнее говоря, скомпонуйте) программу и запустите ее на выполнение. Результат будет настолько безобразным (рисунок 7).

Рисунок 7-Вид окна после замены в программе оператор вывода

1.6 Проблемы с вводом-выводом кириллицы

Работа в среде Visual C++ 6.0 (в режиме консольных приложений) сопряжена с определенными неудобствами, вызванными различными стандартами кодировки символов кириллицы в операционных системах MS DOS и Windows. Этот вопрос подробно рассматривается на лабораторной работе № 1. Здесь мы только напомним, что весь ввод-вывод в консольном окне идет в кодировке стандарта ASCII, а текст в исходных файлах, набираемый в текстовом редакторе Visual C++, имеет кодировку в стандарте ANSI. Поэтому для нормального вывода строки, содержащей буквы русского алфавита, эту строку надо сначала «пропустить» через функцию CharToOem(), а уже потом отправлять на консольный вывод. Аналогично, если в программе есть консольный ввод текста и этот текст в дальнейшем надо сохранять в документах (файлах) с кодировкой ANSI, то перед сохранением его надо «пропустить» через функцию OemToChar().

С учетом сказанного выше можно предложить следующую адаптацию нашей первой программы к местным (российским) условиям:

///////////////////////////////////////////////////////////

#include <iostream.h>

#include <windows.h>

char* Rus(const char* text);

int main() {

char strl[80];

// cout << "Welcome to C++!" << endl;

cout << Rus("Добро пожаловать в C++!") << endl;

// cout << "Enter the string:" << endl;

cout << Rus("Введите строку:") << endl;

cin >> strl;

// cout << "The value strl = " << endl;

cout << Rus("Значение строки strl = ") << endl;

cout << strl << endl;

return 0;

}

//////////////////////////////////////////////////////////

char bufRus[256];

char* Rus(const char* text) {

CharToOem(text, bufRus);

return bufRus;

}

//////////////////////////////////////////////////////////

Ничего не принимайте на веру. Немедленно, прямо сейчас (!) откомпилируйте эту программу и убедитесь, что она дает ожидаемый результат.

1.7 Конфигурация проекта

Visual C++ позволяет строить проект либо в отладочной конфигурации (Win32 Debug), либо в выпускной конфигурации (Win32 Release). Мы рекомендуем вам всегда работать с проектами в отладочной конфигурации. Обычно она установлена по умолчанию. Все же не мешает проверить, с какой конфигурацией на самом деле идет работа. Для этого выберите в меню Project пункт Settings... Откроется диалоговое окно Project Settings. Проверьте, какое значение установлено в окне комбинированного списка Settings For:.. Если это не Win32 Debug, то переключитесь на нужное значение через команду меню Build > Set Active Configuration...

1.8 Как закончить работу над проектом

Можно выбрать меню File, пункт Close Workspace. А можно просто закрыть приложение Visual C++.

1.9 Как открыть проект, над которым вы работали ранее

1. Способ первый:

• Запустите на выполнение Visual C++.

• Выберите меню File, пункт Open Workspace...

• В открывшемся диалоговом окне найдите папку с вашим проектом, а в ней – файл ProjectName.dsw.

• Откройте этот файл, щелкнув по нему мышью.

2. Способ второй:

• Запустите на выполнение Visual C++.

• Выберите меню File, наведите курсор мыши на пункт Recent Workspaces.

• Если в появившемся меню со списком последних файлов, с которыми шла работа, вы найдете интересующий вас файл ProjectName.dsw, то щелкните по нему мышью.

3. Способ третий:

• Не вызывая Visual C++, найдите папку с вашим проектом, а в ней – файл ProjectName.dsw.

• Щелкните мышью на файле ProjectName.dsw.

1.10 Встроенная справочная система

В IDE Visual С ++ имеется обширная справочная система, доступная через меню Help главного окна [5].

Кроме этого, очень удобно пользоваться интерактивной справкой: если вы находитесь в окне Editor, поставьте текстовый курсор на интересующий вас оператор или библиотечную функцию C++ и нажмите клавишу F1. Тотчас будет вызвана справочная система MSDN с предоставлением необходимой информации. Если запрошенный термин встречается в разных разделах MSDN, то сначала появится диалоговое окно «Найденные разделы». В списке разделов выберите тот, в котором упоминается «Visual C++».

1.11 Работа с отладчиком

Полное описание возможностей встроенного отладчика Visual C++ и приемов работы с ним может потребовать отдельной книги, настолько объемна эта тема. По­этому мы дадим только начальные сведения о работе с отладчиком Visual C++. Проще всего это сделать, написав программу, заведомо содержащую несколько ошибок, а затем показав, как с помощью отладчика можно найти и исправить эти ошибки.

В частности, мы научимся устанавливать в программе точки прерывания и выполнять ее до заданной точки. Когда во время выполнения встречается точка прерывания, программа останавливается, а на экране появляется отлаживаемый код. Это дает возможность детально выяснить, что происходит в программе.

Кроме того, программу можно выполнять последовательно, строку за строкой – такой процесс называется пошаговым выполнением. Этот режим позволяет следить за тем, как изменяются значения различных переменных. Иногда он помогает понять, в чем заключается проблема: если обнаруживается, что переменная принимает неожиданное значение, то это может послужить отправной точкой для выявления ошибки. После обнаружения ошибки ее можно исправить и выполнить программу заново в отладочном режиме.

Назовем нашу программу (проект) именем Buggy. Программа должна вычислять среднее арифметическое первых пяти натуральных чисел: 1-5. Нетрудно догадаться, что ответ должен быть равен 3, однако из-за специально сделанных ошибок программа первоначально будет выдавать неправильный ответ [6].

Для создания программы выполните следующие действия:

¨ Создайте проект типа «консольное приложение» с именем Buggy.

¨ Добавьте к проекту файл buggy.срр и заполните его следующим текстом:

#include <iostream.h>

int main() {

const N = 5;

Int a[N] = {1, 2, 3, 4, 5};

float sum, average;

int i;

for (i = 1; i < N; i++)

sum += a[i];

average = sum / N;

cout << "average = " << average << endl;

return 0;

}

¨ Откомпилируйте проект.

¨ Запустите программу на выполнение.

Вы должны увидеть в консольном окне приложения нечто вроде следующего результата (рисунок 8):

average = -2.14748е+007,

Рисунок 8-Вид окна после запуска программы на выполнение

т. е. программа вычислила, что среднее арифметическое первых пяти целых чисел равно -21474800 (на вашем компьютере может быть и другое число), а это мало похоже на число 3.0.

Начнем отладку нашей злополучной программы.

1.12 Установка точки прерывания

Точка прерывания позволяет остановить выполнение программы перед любой выполняемой инструкцией (оператором) с тем, чтобы продолжать выполнение программы либо в пошаговом режиме, либо в непрерывном режиме до следующей точки прерывания.

Чтобы задать точку прерывания перед некоторым оператором, необходимо установить перед ним текстовый курсор и нажать клавишу F9 или щелкнуть мышью на кнопке Insert/Remove Breakpoint на панели инструментов Build MiniBar. Точка прерывания обозначается в виде коричневого [7] кружка на левом поле окна редактирования. Повторный щелчок на указанной кнопке снимает точку прерывания. В про­грамме может быть несколько точек прерывания.







Дата добавления: 2015-08-27; просмотров: 441. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Эффективность управления. Общие понятия о сущности и критериях эффективности. Эффективность управления – это экономическая категория, отражающая вклад управленческой деятельности в конечный результат работы организации...

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

ТЕРМОДИНАМИКА БИОЛОГИЧЕСКИХ СИСТЕМ. 1. Особенности термодинамического метода изучения биологических систем. Основные понятия термодинамики. Термодинамикой называется раздел физики...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия