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

Страницата е създадена на:15 април 2019 и редактирана на:30 декември 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.

Изпълнението на qmake с посочените опции създава два файла: xxx.xcodeproj и .qmake.stash. Вторият, както личи по започването на името му с точка, е невидим.

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

Използването на Xcode има смисъл за отстраняване на някой грешки, за които Qt Creator не сигнализира, за подписване на приложението, ако сте регистрирани в програмата на Apple за програмисти Apple Developer Program, за компилиране на проекта за мобилни устройства с iOS, публикуване в App Store и др. типично свързани Apple дейности.

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

Например, при показване на съобщение относно опция ALWAYS_SEARCH_USER_PATHS, на която следва да се зададе стойност NO, за де не се показва предупреждение:

Отваряме настройките на проекта,

след което променяме съответната стойност:

В 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

За компилиране и изпълняване на програми за Android Qt Creator използва средствата предоставяни от Android Studio, така че първо трябва да изтеглите и инсталирате Android Studio от:

https://developer.android.com/studio

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

За да проверите дали 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. (В macOS това навярно ще е директория: /Users/userName/Library/Android/sdk.) Обикновено това е комплект за разработване на програми за най-новата версия на Android, но ако искате да правите програми, съвместими и с по-стари версии на Android, трябва да изберете и инсталирате и друга версия на SDK.

Android NDK се изтегля и инсталира също от прозореца SDK Manager на Android Studio - щраква се върху подстраница SDK Tools, поставя се отметка NDK (Side by side) и се щраква бутон OK. Директорията, в която се намира, нормално, е поддиректория на Android SDK, например, ако Android SDK Location е: /Users/userName/Library/Android/sdk, то Android NDK Location може да е: /Users/userName/Library/Android/sdk/ndk/20.1.5948944. Точната директория може да се намери, ако в полето Android NDK Location се изкопира съдържанието на полето Android SDK Location, щракне се бутона в дясно Choose... и с отварящия се диалог се стигне до директорията на някой от инсталираните NDK.

Инсталирането на 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 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.