Компилиране на програми с Qt Creator

Страницата е създадена на:15 април 2019 и редактирана на:10 юни 2019

В Qt Creator може да сме отворили няколко проекта. Във всеки момент е активен само един от отворените проекти и действия като компилиране и стартиране, ако се извършат без друго посочване на проект, се изпълняват върху активния проект.

В режим Edit, когато от падащия списък на страничната лента е избрано да се показват проекти (Projects), името на активния проект се показва с по-черен шрифт. За да направите активен друг проект, щракнете с десен бутон върху неговото име и от изскачащото меню изберете
Set "ИмеНаПроекта" As Active Project.

Библиотеката Qt е предназначена за компилиране на програми, които може да се изпълняват върху различни платформи, включително и върху мобилни устройства с операционни системи: Android и iOS. Платформата, върху която предвиждаме да се изпълнява дадена програма, наричаме целева платформа. За настройване на Qt Creator да използва подходящите за всяка целева платформа: компилатор, версия на Qt и др. детайли, и да създаде, предназначени за всяка платформа изпълними файлове и пакети, се използват целеви комплекти (Kits). Инструментите на Qt за компилиране за различни платформи се избират и инсталират при инсталиране на Qt или, ако не е направено тогава, се прави по-късно с програмата MaintainenceTool.

При създаване или първо отваряне на Qt проект с Qt Creator се избират целевите комплекти, за платформите, в които се предвижда да се изпълняват програмите от проекта.

Ако по-късно, възникне необходимост към проекта да се добави друг, наличен целеви комплект, такъв може да се добави в режим Projects. В този режим, в страничната лента има падащ списък Active Project, от която се избира активния проект, а под заглавието Build & Run се вижда списък на наличните целеви комплекти. Присъединените към проекта целеви комплекти в този списък имат по два подраздела за настройки Build и Run, а тези, които не са присъединени към проекта, са показани само с име и икона съдържаща знак "+", пред това име. За да присъедините целеви комплект щракнете иконата със знак "+". Премахването на целеви комплект от проекта става с десен клик на мишката върху името на комплекта и избиране на "Disable Kit ИмеНаКомплекта".

Върху лентата за избиране на режим има бутон с икона, която се променя съответно на избрания в момента целеви комплект. С този бутон се отваря прозорче (Build & Run Kit Selector), в което в няколко колонки се виждат: имената на отворените проекти; целевите комплекти, на активния проект; вариантите на избрания комплект (Release, Debug и т.н) и програмите от проекта (ако програмата не е само една). С щракване на съответните места в този прозорец бързо се избира програмата, която ще бъде компилирана и изпълнена.

Компилирането на активния проект и избраната от него програма се извършва с щракване върху бутона , намиращ се отдолу на лентата за смяна на режима.

Друг начин за стартиране на процес на компилиране е с команда от менюто
Build – Build Project "ИмеНаПроекта"

При щракване на бутона за компилиране Qt Creator създава директория, в която записва, необходимите за целевата платформа файлове. Тази директория, по подразбиране е с име
build-ИмеНаПроект-ЦелевиПакет-Debug или
build-ИмеНаПроект-ЦелевиПакет-Release

B macOS

В macOS наред с Qt Creator може да използвате и Xcode за да редактирате и компилирате своите проекти. За целта е необходимо да създадете .xcodeproj файл, двойното щракване върху който да предизвика отваряне на проекта в Xcode. От терминал влезе в директорията с .pro файла на вашия Qt проект, като подадете команда cd, последвана от пътя до директорията с този файл. После подайте команда:

qmake -spec macx-xcode xxx.pro

в която xxx.pro трябва да е името на .pro файла на проекта.

Ако директорията, в която се намира qmake не е добавена в PATH променливата на обкръжението, вместо само qmake следва да се напише целият пъд до qmake.

Сега може с Finder да отворите директорията с проекта и да щракнете двойно с мишката върху .xcodeproj файла. Това предизвиква отваряне на проекта с Xcode.

Използването на Xcode има смисъл за отстраняване на някой грешки, за които Qt Creator не сигнализира и за подписване на приложението, ако сте регистрирани в програмата на Apple за програмисти.

В Ubuntu 17.04

Изпълнимите файлове, които създава Qt Creator, са от тип shared library (application/x-sharedlib), а би трябвало да са от тип executable (application/x-executable). Последното възпрепятства, например, стартирането им с двойно щракване на мишката в прозореца на програма Files. За решаване на този проблем, в .pro файла на проекта трябва да се добави ред:

linux-g++ { QMAKE_LFLAGS += -no-pie }

(Вижте: https://stackoverflow.com/questions/41398444/gcc-creates-mime-type-application-x-sharedlib-instead-of-application-x-applicati)

Следва описание на процеса на компилиране без помощта на Qt Creator и ако не се интересувате от него, а само от работа с Qt Creator, може да преминете към Изпълнение на програми.

Ако сте инсталирали само Qt библиотеките

компилирането на програми се извършва с интегрираните инструменти за разработка.

Отворете някоя от директориите съдържащи примерна програма, например: C:\qt\4.5.3\examples\desktopsystray – примера за програма, чиято икона се разполага до часовника (system tray) върху лентата на задачите (task bar). Изпълнимите .exe файлове на примерите в Windows се намират в поддиректории release, а приложните пакети .app в Mac OS X и изпълнимите файлове в Linux, се намират в същите директории с първичния код. Ако искате само да видите в действие дадена примерна програма, щракнете върху нейния изпълним файл, но ако искате да я компилирате трябва да влезете през конзолната програма в директорията с изходния й код.

В Windows препоръчвам да копирате в директорията с изходния код .bat файла за създаване на "временно" обкръжение. Щракнете двойно върху иконата на .bat файла и след като се отвори конзолата, подайте командите:

qmake

make

Успешното изпълнение на qmake завършва без показване на никакви съобщения, а изпълнението на make е придружено от надписи за всеки файл от кода, който бъде компилиран. Ако наред с тези надписи не се покажат съобщения за грешки (error), компилирането приключва успешно и накрая се показва промта, готов да приеме нова команда.

Възможни проблеми при компилиране

В macOS

При съобщение за грешка, подобна на:

warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk'

Трябва да се осигури наличието на съответния SDK. Може да намерите файлове за изтегляне на адрес:

https://github.com/phracker/MacOSX-SDKs/releases

Разархивирането се извършва с команда tar от терминал, и разархивираната .sdk директория се копира в директория:

/Аpplications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

В Windows

са възможни проблеми във връзка с неправилно или незададени променливи на обкръжението. (Вижте: Създаване на "постоянно" работно обкръжение и Създаване на "временно" работно обкръжение.)

Също така командата make може по подразбиране да компилира проекта до двоичен файл, предназначен за дебъгване (debug), а не до файл, предназначен за крайна реализация. За да не се случи това, вместо само командата make, използвайте команда make release или добавете в .pro файла на проекта един ред:

CONFIG += qt release

Ако в Mac OS X сте инсталирали Qt от инсталационен пакет, подаването на команда qmake без параметри създава .xcodeproj проектен файл за отваряне с xcode. За да бъдат създаден Makefile за компилиране на проекта с make трябва да подадете команда:

qmake -spec macx-g++

 

Направено с MyCMS. Copyright CC BY-ND 4.0.