Компилируем 64-битную версию Qt под windows
За последние годы кросс-платформенная библиотека Qt получила не только многочисленные улучшения, но также собственную среду разработки QtCreator и удобные инсталляторы под все операционные системы. Теперь для разработки не нужно самому устанавливать необходимое окружение, прописывать пути, интегрировать библиотеку в ide — достаточно запустить инсталлятор и все будет работать «из коробки». К сожалению, версия для windows имеет инсталлятор только для 32-битной сборки библиотеки и ide. А иногда возникает необходимость сделать именно 64-битное приложение — чаще всего это связано с необходимостью использовать чужие 64-битные компоненты: подгружаемые библиотеки, inproc com компоненты и прочие странные штуки. Под катом содержится подробная инструкция как скомпилировать Qt и QtCreator из исходников для 64-битной архитектуры.
Сборка займет порядка 6 часов времени и 8 гигабайт места на жестком диске :).
Для корректной работы отладчика в QtCreator собирать рекомендуется компилятором от Microsoft.
Скачиваем SDK тут, запускаем инсталлятор и устанавливаем всю ветку «developer tools» (при сборке Qt используется почти все оттуда).
Скачиваем исходники последнего QtCreator 1.3 тут и распаковываем архив в
c:\qt\
Переименовываем распаковавшуюся папку в
2010.01.x64
Затем скачиваем исходники последней Qt 4.6 тут и распаковываем архив в
c:\qt\2010.01.x64
Переименовываем распаковавшуюся папку в
qt
Здесь нужно учитывать, что при компиляции имена папок будут вкомпилированы в qmake и поменять их будет нельзя. Приведенные мной имена папок соответствует тому, куда Qt устанавливает инсталлятор под windows.
Запускаем
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\Visual Studio 2008 x64 Win64 Command Prompt.lnk
В открывшейся консоли последовательно выполняем:
cd c:\qt\2010.01.x64\qt
configure.exe
o
y
nmake
Вызов configure.exe создает makefile для сборки всего компилятором от microsoft (компилятор
определится автоматически, так как мы работаем в visual studio command prompt — переменные окружения с нами). «o» выберет тип лицензии open source (бесплатно), «y» подтвердит соглашение с лицензией. Вызов nmake — это собственно утилита от microsoft для чтения makefile и компиляции чего надо и чего не надо. После того как nmake отработала (а это несколько часов) не закрываем консоль и копируем куда-нибудь во временную папку все .pdb файлы из
c:\qt\2010.01.x64\qt\lib
Из-за баги в makefile они будут стерты при удалении временных файлов. Затем продолжаем в консоли:
nmake clean
set PATH=%PATH%;c:\qt\2010.01.x64\qt\bin
cd c:\qt\2010.01.x64
qmake «CONFIG+=release» -r
nmake release
Не закрывая консоль, копируем во временную папку все .pluginspec файлы из
c:\qt\2010.01.x64\lib\qtcreator\plugins\nokia
Это тоже баг в makefile. Затем продолжаем в консоли:
После того как все скомпилировалось, перемещаем .pdb и .pluginspec файлы обратно. QtCreator компилируется в релизном варианте, так как отладочный билд будет запускаться как command-line приложение с неубираемой консолью.
Обтачивание напильником
После того как все успешно собрано, все .dll файлы в окончании имени которых нет «d» копируются из папки
c:\qt\2010.01.x64\qt\bin
в папку
c:\qt\2010.01.x64\bin
Среда разработки QtCreator запускается как
c:\qt\2010.01.x64\bin\qtcreator.exe
Перед его вызовом необходимо вызвать
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat
Это нужно для того, чтобы QtCreator корректно работал с компилятором и отладчиком от Microsoft.
Запускаем QtCreator, выбираем Tools->Options->Project, снимаем галочку с «Use jom». Можно в принципе и не снимать, но тогда этот самый jom нужно будет скачать и скопировать в «bin». Нажимаем «Apply».
Затем выбираем Tools->Options->Qt4->QtVersions, нажимаем на «+» в правом верхнем углу, в поле «Version Name» прописываем «Qt 4.6.0 x64», в поле «QMake location» прописываем
«C:\qt\2010.01.x64\qt\bin\qmake.exe», устанавливаем «MSVC Version» в «9.0», в поле «Default Qt Version» выбираем «Qt 4.6.0 x64» и нажимаем на кнопку «Rebuild». Выбираем Tools->Options->Help->Documentation, нажимаем «Add» и добавляем все .qch файлы из c:\qt\2010.01.x64\qt\doc\qch
Вообщем-то все. Создание, редактирование, сборка и, что самое приятное — отладка 64 битных Qt программ под windows к вашим услугам. За сим прощаюсь и жду комментариев. Если есть вопросы — постараюсь ответить. Если есть что рассказать (может зря я все это делал и на просторах сети уже лежат готовые инсталляторы 🙂 — буду благодарен.
В поддержку Qt
статьи в помощь разработчику
Настройка Qt Creator
Главная > Установка Qt Creator
Настройка Qt Creator
Перед использованием Qt Creator рекомендуется выполнить некоторые настройки. Для этого запускаем приложение и выбираем пункт главного меню Инструменты > Параметры .
На вкладке Сборка и запуск > Основное указываем каталог проектов, например, /home/login/Qt/qt-proj (этот каталог надо заблаговременно создать). На вкладке Текстовый редактор > Поведение назначаем Кодировкам файлов > По умолчанию значение UTF-8 .
Предполагается, что у Вас уже установлена библиотека Qt 5.
Выбираем вкладку Сборка и запуск > Компиляторы и убеждаемся, что среди обнаруженных имеется компилятор, обладающий свойствами
Название: | GCC (x86 32bit в /usr/bin) |
Путь к компилятору: | /usr/bin/g++ |
ABI: | x86-linux-generic-elf-unknown |
На вкладке Отладчики (здесь же) убеждаемся, что среди обнаруженных имеется отладчик, в свойствах которого прописано
Имя: | Система GDB в /usr/bin/gdb |
Путь: | /usr/bin/gdb |
Тип: | GDB |
ABI: | x86-linux-generic-elf-unknown |
Версия: | 7.7.1 |
Далее выбираем вкладку Qt Versions , нажимаем кнопку Добавить . и указываем путь к установленной заранее библиотеке Qt /home/login/Qt/Qt5/5.5/gcc/bin/qmake . В названии профиля прописываем, например, Qt 5.5.1 GCC 32bit .
Теперь можно создать связку инструментов. Выбираем вкладку Комплекты , нажимаем кнопку Добавить и в свойствах новой связки указываем
Название: | Desktop Qt 5.5.1 GCC 32bit |
Тип устройства: | Desktop |
Устройство: | Локальный ПК (по умолчанию для Desktop) |
Компилятор: | GCC (x86 32bit в /usr/bin) |
Отладчик: | Система GDB в /usr/bin/gdb |
Профиль Qt: | Qt 5.5.1 GCC 32bit |
Закрываем окно Параметры , нажав кнопку OK .
На вкладке Сборка и запуск > Основное указываем каталог проектов, например, C:\Qt\qt-proj (этот каталог надо заблаговременно создать). На вкладке Текстовый редактор > Поведение назначаем Кодировкам файлов > По умолчанию значение windows-1251 / CP1251 .
Предполагается, что у Вас уже установлена библиотека Qt 5 с MinGW и собран отладчик GDB.
Выбираем вкладку Сборка и запуск > Компиляторы , нажимаем кнопку Добавить > MinGW и указываем путь к компилятору C:\Qt\Qt5.5.1\Tools\mingw492_32\bin\g++.exe . В названии прописываем, например, MinGW 4.9.2 (x86 32bit) .
На вкладке Отладчики (здесь же) нажимаем кнопку Добавить и в свойствах нового отладчика указываем
Имя: | GDB 7.10 |
Путь: | C:\Qt\qtcreator-gdb-7.10\gdb-i686-pc-mingw32.exe |
Далее выбираем вкладку Qt Versions , нажимаем кнопку Добавить . и указываем путь к установленной заранее библиотеке Qt C:\Qt\Qt5.5.1\5.5\mingw492_32\bin\qmake.exe . В названии профиля прописываем, например, Qt 5.5.1 MinGW 4.9.2 .
Теперь можно создать связку инструментов. Выбираем вкладку Комплекты , нажимаем кнопку Добавить и в свойствах новой связки указываем
Название: | Desktop Qt 5.5.1 MinGW 4.9.2 |
Тип устройства: | Desktop |
Устройство: | Локальный ПК (по умолчанию для Desktop) |
Компилятор: | MinGW 4.9.2 (x86 32bit) |
Отладчик: | GDB 7.10 |
Профиль Qt: | Qt 5.5.1 MinGW 4.9.2 |
Qt 5 и MSVC 2010
Предполагается, что у Вас уже установлена библиотека Qt 5 с MSVC 2010 и инструментарий Windows SDK for Windows 7.
Выбираем вкладку Сборка и запуск > Компиляторы и убеждаемся, что среди обнаруженных имеется компилятор, обладающий свойствами
Название: | Microsoft Windows SDK for Windows 7 (7.1.7600.0.30514) (x86) |
Инициализация: | С:\Program Files\Microsoft SDKs\Windows\v7.1\bin\SetEnv.cmd /x86 |
На вкладке Отладчики (здесь же) убеждаемся, что среди обнаруженных имеется отладчик, в свойствах которого прописано
Имя: | Обнаруженный CDB в . |
Путь: | C:\Program Files\Debugging Tools for Windows (x86)\cdb.exe |
или C:\Program Files\Debugging Tools for Windows (x64)\cdb.exe | |
Тип: | CDB |
ABI: | x86-windows-msvc2010-pe-32bit |
или x86-windows-msvc2010-pe-64bit | |
Версия: | 6.12.0002.633 |
Далее выбираем вкладку Qt Versions , нажимаем кнопку Добавить . и указываем путь к установленной заранее библиотеке Qt D:\Qt\Qt5.5.1-vs\5.5\msvc2010\bin\qmake.exe . В названии профиля прописываем, например, Qt 5.5.1 MSVC 2010 .
Теперь можно создать связку инструментов. Выбираем вкладку Комплекты , нажимаем кнопку Добавить и в свойствах новой связки указываем
Название: | Desktop Qt 5.5.1 MSVC 2010 |
Тип устройства: | Desktop |
Устройство: | Локальный ПК (по умолчанию для Desktop) |
Компилятор: | Microsoft Windows SDK for Windows 7 (7.1.7600.0.30514) (x86) |
Отладчик: | Обнаруженный CDB в . |
Профиль Qt: | Qt 5.5.1 MSVC 2010 |
Закрываем окно Параметры , нажав кнопку OK .
Qt для Windows
Qt — это кросс-платформенный фреймворк, с помощью которого можно создавать программное обеспечение, которое будет компилироваться в исполняемые файлы для различных операционных систем без изменения или с минимальным изменением кода. Первоначально платформа Qt создавалась для работы с кодом на языке программирования C++, однако вскоре появились наборы расширений для программирования на PHP, Python, Ruby и Java.
Являясь объектно-ориентированной средой программирования рассчитанной на мультиплатформенную разработку, Qt распространяется вместе с классами и библиотеками необходимыми для разработки элементов интерфейса в различных платформах, поддержки работы с сетью и подключения к базам данных, что делает его пригодным «из коробки» для создания большинства прикладных программ. Как и у большинства современных сред разработки и фреймворков, при необходимости функциональность Qt можно значительно расширить с помощью подключаемых плагинов и виджетов.
Фактически после выхода версии 4.5.0, которая получила интегрированный модуль Qt Creator, фреймворк стал представлять собой полноценную мультиплатформенную среду разработки в которой можно полноценно писать код, разрабатывать графические интерфейсы режиме визуального редактора с помощью модуля Qt Designer, разрабатывать кросс-платформенную справку воспользовавшись Qt Assistant и локализировать своё приложение на множество языков с благодаря модулю Qt Linguist.
Как и в случае с большинством свободно распространяемых программ, вы можете скачать исходный код Qt с официального сайта и собственноручно собрать нужные модули с персональными пожеланиями, однако в большинстве случае достаточно скачать Qt в виде автоматизированного установщика и просто выбрать, какие именно компоненты вам необходимы
Большинство модулей фреймворка Qt распространяются по лицензии LGPL v3 и GPL v3 с открытым исходным кодомLGPL v3 и GPL v3 с открытым исходным кодом и его можно скачивать и использовать бесплатно. При этом нужно иметь в виду, что лицензия некоторых модулей требует, чтобы создаваемый вами продукт так же распространялся под лицензией совместимой с GPL. Подробности лицензирования можно уточнить на официальном сайте фреймворка.
Qt Documentation
Contents
Qt is supported on a variety of 32-bit and 64-bit platforms, and can usually be built on each platform with GCC, a vendor-supplied compiler, or a third party compiler. In Qt Creator, a kit specifies the compiler and other necessary tools for building an application for and running it on a particular platform.
Qt Creator automatically detects the compilers that are registered by your system or by the Qt Installer and lists them in Tools > Options > Kits > Compilers:
You can add the following compilers to build applications by using other compilers or by using additional versions of the automatically detected compilers:
- GNU Compiler Collection (GCC) is a compiler for Linux and macOS.
- MinGW (Minimalist GNU for Windows) is a native software port of GCC and GNU Binutils for use in the development of native Microsoft Windows applications on Windows. MinGW is distributed together with Qt Creator and Qt for Windows.
- ICC (Intel C++ Compiler) is a group of C and C++ compilers. Only the GCC-compatible variant, available for Linux and macOS, is currently supported by Qt Creator.
- Clang is a C, C++, Objective C, and Objective C++ front-end for the LLVM compiler for Windows, Linux, and macOS.
- clang-cl is an alternative command-line interface to Clang that is compatible with the Visual C++ compiler, cl.exe .
- Nim is the Nim Compiler for Windows, Linux, and macOS.
- QCC is the interface for compiling C++ applications for QNX.
In addition, the Qt Creator Bare Metal Device plugin provides support for the following compilers:
- IAREW is a group of C and C++ bare-metal compilers from the various IAR Embedded Workbench development environments.
Note: Currently supported architectures are 8051 , AVR , ARM , STM8 , and MSP430 .
KEIL is a group of C and C++ bare-metal compilers from the various KEIL development environments.
Note: Currently supported architectures are 8051 and ARM .
SDCC is a retargetable, optimizing C bare-metal compiler for various architectures.
Note: Currently supported architectures are 8051 and STM8 .
Redetecting Compilers
When Qt Creator finds an x86_64 GCC compiler, it sets up an instance for the native x86_64 target. If you plan to create also 32-bit x86 binaries without using a dedicated cross-compiler, select Auto-detection Settings > Detect x86_64 GCC compilers as x86_64 and x86. Then select Re-detect to refresh the list of automatically detected compilers.
To remove manually added compilers, select Remove or Remove All.
Specifying Compiler Settings
To build an application using GCC, MinGW, Clang, or QCC, specify the path to the directory where the compiler is located and select the application binary interface (ABI) version from the list of available versions. You can also create a custom ABI definition. For QCC, also specify the path to the QNX Software Development Platform (SDP).
To enable Microsoft Visual C++ Compilers (MSVC) and clang-cl to find system headers, libraries, and the linker, Qt Creator executes them inside a command prompt where the environment has been set up using vcvarsall.bat . For these compilers, you also specify the path to the script that sets up the command prompt.
You specify the compiler to use for each kit in Tools > Options > Kits.
To add C or C++ compilers:
- Select Tools >Options >Kits >Compilers >Add, then select a compiler in the list, and then select C or C++ to add a C or C++ compiler.
To clone the selected compiler, select Clone.
The other settings to specify depend on the compiler.
Adding Nim Compilers
To build an application using the Nim Compiler, select Tools > Options > Kits > Compilers > Add > Nim, and specify the path to the directory where the compiler is located.
Adding Custom Compilers
To add a compiler that is not listed above or a remote compiler, use the Custom option and specify the paths to the directories where the compiler and make tool are located and options for the compiler.
To add other compilers:
- Select Tools >Options >Kits >Compilers >Add >Custom >C or C++.
- In the Name field, enter a name for the compiler.
- In the Compiler path field, enter the path to the directory where the compiler is located.
- In the Make path field, enter the path to the directory where the make tool is located.
- In the ABI field, specify the ABI version.
- In the Predefined macros field, specify the macros that the compiler enables by default. Specify each macro on a separate line, in the following format: MACRO[=value].
- In the Header paths field, specify the paths to directories that the compiler checks for headers. Specify each path on a separate line.
- In the C++11 flags field, specify the flags that turn on C++11 support in the compiler.
- In the Qt mkspecs field, specify the path to the directory where mkspecs are located. Usually, the path is specified relative to the Qt mkspecs directory.
- In the Error parser field, select the error parser to use. You can add custom output parsers to the list. For more information, see Using Custom Output Parsers.
Troubleshooting MinGW Compilation Errors
If error messages displayed in the Compile Output pane contain paths where slashes are missing (for example, C:QtSDK ), check your PATH variable. At the command line, enter the following commands:
If these commands show paths, they have been added to the global PATH variable during the installation of a tool chain based on Cygwin or MinGW, even though this is against Windows conventions.
To keep working with the third-party tool chain, create a new shell link that adds the required paths (as Visual Studio and Qt do). The shell link must point to cmd.exe, as illustrated by the following example:
C:\Windows\System32\cmd.exe /K C:\path_to\myenv.bat
where the /K parameter carries out the command specified in the bat file.
Create the myenv.bat file at path_to, which should be in a convenient location. In the file, specify the paths to the tool chains. For example,
where path1 and path2 are paths to the tool chains.
Finally, remove the paths from the global PATH, reboot the computer, and run the where commands again to verify that the global PATH is now clean.
You can use the shell link to run the tools in the third-party tool chains.
В© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.