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

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

Съдържание

Активен проект Целеви платформи и комплекти B macOS В Ubuntu 17.04 За Android Ако сте инсталирали само Qt библиотеките Възможни проблеми при компилиране В macOS В Windows

Активен проект

В 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 за програмисти Apple Developer Program.

В 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)

За Android

За да проверите дали Qt Creator има връзка с необходимите инструменти за компилиране на програми за Android, отворете прозореца за настройки Preferences, щракнете върху надписа Devices и после върху заглавието на страница Android. На тази страница с настройки ще видите съобщения дали са открити и свързани JDK, Android SDK и Andrid NDK.

Ако на тези страница има съобщения за грешки, то следва да ги отстраните. Щракнете първо бутона зелена стрелка в края реда, започващ с надписа Android SDK Location. Това отваря браузъра на страницата за изтегляне на Android Studio. Ако вече имате инсталирано Android Studio, то проверете дали е същата версия.

От Android Studio се изтегля и инсталира Android SDK и NDK - от първия прозорец, който се показва при стартиране на Android Studio се избира от падащия списък Cofigure - SDK Manager. Една версия на SDK е изтеглена и инсталирана при инсталиране на Android Studio, така че е достатъчно да копирате нейната директория от полето Android SDK Location в същото поле в настроиките на Qt Creator. Обикновено това е комплект за разработване на програми за най-новата версия на Android, но ако искате да правите програми, съвместими и с по-стари версии на Android, трябва да изберете и инсталиратe и друга версия на SDK.

Android NDK се изтегля и инсталира също от прозореца SDK Manager на Android Studio - щраква се върху подстраница SDK Tools, поставя се отметка NDK (Side by side) и се щраква бутон OK.

Инсталирането на Android Studio инсталира и съвместима с него развойна среда JDK, която е за предпочитане да се използва в Qt, вместо отделно инсталирана JDK. Директорията на тази среда в macOS се намира в изпълнимия пакет на Android Studio: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home. Тази директория трябва да се напише в полето срещу надписа JDK Location в прозореца за настройките на Qt Creator.

Относно създаването на програми за Android с Qt вижте:

https://doc.qt.io/qt-5/android.html
https://doc.qt.io/qt-5/android-getting-started.html

Добра идея е след инсталиране на посочените инструменти да се изпробва тяхното функциониране, преди да се правят опити за използването им с Qt. Само ако се установи, че в Android studio успешно може се създават и изпълняват програми за Android, както на емулатор, така и върху физическо устройство, може да се пристъпи към създаване на такива програми и с Qt (Qt Creator).

След инсталиране на развойните среди за Android в прозореца за настройки Preferences, в раздел Devices, страница Android, чрез щракване на бутоните Choose след съответните полета се посочват директориите на всеки от изискваните програмни продукти.

Следва описание на процеса на компилиране без помощта на 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.