Компилиране на програми с Qt Creator
Страницата е създадена на:15 април 2019 и редактирана на:30 декември 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
.
Изпълнението на 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 }
За 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++
Предишна страница: Създаване на най-прост проект
Следваща страница: Изпълнение на програми