Компиляция и запуск программы в редакторе QtCreator

Заполним созданные файлы кодом. Содержимое файла HelloWorld.hpp:

#ifndef HELLOWORLD_HPP
#define HELLOWORLD_HPP

void printHelloWorld();

#endif // HELLOWORLD_HPP

Содержимое файла HelloWorld.cpp:

#include <iostream>
#include "HelloWorld.hpp"

void printHelloWorld() {
   std::cout << "Hello, world!" << std::endl;
}

Содержимое файла main.cpp:

#include "HelloWorld.hpp"

int main() {
   printHelloWorld();
   return 0;
}

Теперь можно скомпилировать проект и запустить в редакторе QtCreator. Предварительно сохраняем файлы, выбрав в меню Файл пункт Сохранить все или нажав комбинацию клавиш <Shift>+<Ctrl>+<S>.

Скомпилировать программу и сразу ее запустить можно несколькими способами:

  • в меню Сборка выбираем пункт Запустить;
  • нажимаем комбинацию клавиш <Ctrl>+<R>;
  • нажимаем кнопку с изображением зеленого треугольника на панели слева (рис. 2.10). Если нужно выполнить только сборку без запуска, то нужно выбрать кнопку с изображением молотка.

2_10.jpg

Рис. 2.10. Способы сборки и запуска программы

На вкладке Вывод сборки (рис. 2.11) отобразятся инструкции компиляции. Если компиляция прошла успешно, то никаких сообщений об ошибках в этом окне не будет:

15:25:16: Выполняются этапы для проекта HelloWorld...
15:25:16: Настройки не изменились, этап qmake пропускается.
15:25:16: Запускается: «C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe» -j4
C:/Qt/Tools/mingw810_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/cpp/projectsQt/HelloWorld-Debug'
g++ -c -fno-keep-inline-dllexport -finput-charset=cp1251 
-fexec-charset=cp1251 -Wconversion -g -std=gnu++1z -Wall -Wextra
 -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32
 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -I../HelloWorld -I. 
-I../../../Qt/6.1.0/mingw81_64/mkspecs/win32-g++  
-o debug\HelloWorld.o ..\HelloWorld\HelloWorld.cpp
g++ -c -fno-keep-inline-dllexport -finput-charset=cp1251 
-fexec-charset=cp1251 -Wconversion -g -std=gnu++1z -Wall -Wextra
 -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32
 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -I../HelloWorld -I. 
-I../../../Qt/6.1.0/mingw81_64/mkspecs/win32-g++  -o debug\main.o 
..\HelloWorld\main.cpp
g++ -Wl,-subsystem,console -mthreads -o debug\HelloWorld.exe
 debug/HelloWorld.o debug/main.o  
mingw32-make[1]: Leaving directory 'C:/cpp/projectsQt/HelloWorld-Debug'
15:25:17: Процесс «C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe» завершился успешно.
15:25:17: Прошло времени: 00:01.

2_11.jpg

Рис. 2.11. Результат компиляции на вкладке Вывод сборки

Компиляция в редакторе QtCreator выполняется в несколько проходов. При первом проходе создается объектный файл HelloWorld.o, при втором — объектный файл main.o, а на третьем проходе на их основе создается EXE-файл. Все файлы можно найти в каталоге C:\cpp\projectsQt\HelloWorld-Debug\debug.

По умолчанию для проекта задается режим сборки Отладка. В этом режиме дополнительно сохраняется информация для отладчика и EXE-файл будет создан без оптимизаций. Когда программа уже написана и отлажена, нужно выбрать режим Выпуск. Для этого на панели слева из списка выбираем пункт Выпуск (см. рис. 2.10). Затем нажимаем кнопку Запустить. После сборки созданные файлы будут доступны в каталоге C:\cpp\projectsQt\HelloWorld-Release\release.

После изменения настроек при сборке в режиме Выпуск на вкладке Вывод сборки отобразятся следующие инструкции:

15:37:24: Выполняются этапы для проекта HelloWorld...
15:37:24: Запускается: «C:\Qt\6.1.0\mingw81_64\bin\qmake.exe»
 C:\cpp\projectsQt\HelloWorld\HelloWorld.pro -spec win32-g++
 "CONFIG+=qtquickcompiler"
Info: creating stash file C:\cpp\projectsQt\HelloWorld-
Release\.qmake.stash
15:37:24: Процесс «C:\Qt\6.1.0\mingw81_64\bin\qmake.exe» 
завершился успешно.
15:37:24: Запускается: «C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe» -f
 C:/cpp/projectsQt/HelloWorld-Release/Makefile qmake_all
mingw32-make: Nothing to be done for 'qmake_all'.
15:37:24: Процесс «C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe» 
завершился успешно.
15:37:24: Запускается: «C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe» -j4
C:/Qt/Tools/mingw810_64/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'C:/cpp/projectsQt/HelloWorld-
Release'
g++ -c -fno-keep-inline-dllexport -finput-charset=cp1251
 -fexec-charset=cp1251 -Wconversion -O2 -std=gnu++1z -Wall -Wextra
 -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32
 -DMINGW_HAS_SECURE_API=1 -I../HelloWorld -I.
 -I../../../Qt/6.1.0/mingw81_64/mkspecs/win32-g++  
-o release\HelloWorld.o ..\HelloWorld\HelloWorld.cpp
g++ -c -fno-keep-inline-dllexport -finput-charset=cp1251 
-fexec-charset=cp1251 -Wconversion -O2 -std=gnu++1z -Wall -Wextra 
-Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32
 -DMINGW_HAS_SECURE_API=1 -I../HelloWorld -I.
 -I../../../Qt/6.1.0/mingw81_64/mkspecs/win32-g++  
-o release\main.o ..\HelloWorld\main.cpp
g++ -Wl,-s -Wl,-subsystem,console -mthreads -o release\HelloWorld.exe
 release/HelloWorld.o release/main.o  
mingw32-make[1]: Leaving directory 'C:/cpp/projectsQt/HelloWorld-Release'
15:37:25: Процесс «C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe» 
завершился успешно.
15:37:25: Прошло времени: 00:01.

В результате сборки в разных режимах были созданы два EXE-файла:

C:\cpp\projectsQt\HelloWorld-Debug\debug\HelloWorld.exe
C:\cpp\projectsQt\HelloWorld-Release\release\HelloWorld.exe

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

C:\book>C:\cpp\projectsQt\HelloWorld-Debug\debug\HelloWorld.exe
Hello, world!

C:\book>C:\cpp\projectsQt\HelloWorld-Release\release\HelloWorld.exe
Hello, world!

Результат запуска в редакторе QtCreator доступен на вкладке Вывод приложения:

15:48:03: Запускается C:\cpp\projectsQt\HelloWorld-
Release\release\HelloWorld.exe ...
Hello, world!
15:48:03: C:\cpp\projectsQt\HelloWorld-Release\release\HelloWorld.exe
 завершился с кодом 0

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

2_12.jpg

Рис. 2.12. Результат выполнения программы на вкладке Вывод приложения

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов