Qt for macOS - Building from Source
Requirements
Qt requires a macOS platform SDK and corresponding toolchain to be installed on the system. You can get this by installing the Xcode command line tools:
xcode-select --install
Or by downloading and installing Xcode.
Compiler Versions
Qt for macOS is tested and compatible with several versions of GCC (GNU Compiler Collection) and Clang (as available from Xcode). For a list of tested configurations, refer to the Reference Configuration section of the supported platforms page.
QDoc Dependencies
Since version 5.11, QDoc uses Clang to parse C++ code. If you wish to build QDoc manually, refer to Installing Clang for QDoc for specific build requirements.
Steps for Building
The following instructions describe how to build Qt from the source package. You can download the Qt 5 sources from the Downloads page. For more information, visit the Getting Started with Qt page.
Step 1: Install the License File (Commercially Licensed Qt Only)
If you use Qt with a commercial license, the Qt tools look for a local license file. If you are using a binary installer or the commercial Qt Creator, your licenses are automatically fetched and stored in your local user profile ($HOME/Library/Application Support/Qt/qtlicenses.ini
file).
If you do not use any binary installer or Qt Creator, you can download the respective license file from your Qt Account Web portal and save it to your user profile as $HOME/.qt-license
. If you prefer a different location or file name, you need to set the QT_LICENSE_FILE
environment variable to the respective file path.
Step 2: Unpack the Archive
Unpack the archive if you have not done so already. For example, if you have the qt-everywhere-opensource-src-%VERSION%.tar.gz
package, type the following commands at a command line prompt:
cd /tmp gunzip qt-everywhere-opensource-src-%VERSION%.tar.gz # uncompress the archive tar xvf qt-everywhere-opensource-src-%VERSION%.tar # unpack it
This creates the directory /tmp/qt-everywhere-opensource-src-%VERSION%
containing the files from the archive.
Step 3: Build the Qt Library
To configure the Qt library for your machine type, run the ./configure
script in the package directory.
By default, Qt is configured for installation in the /usr/local/Qt-%VERSION%
directory, but this can be changed by using the -prefix
option.
cd /tmp/qt-everywhere-opensource-src-%VERSION% ./configure
By default, Qt is built as a framework, but you can built it as a set of dynamic libraries (dylibs) by specifying the -no-framework
option.
Qt can also be configured to be built with debugging symbols. This process is described in detail in the Debugging Techniques document.
The Configure Options page contains more information about the configure options.
To create the library and compile all the examples and tools, type:
make
If -prefix
is outside the build directory, you need to install the library, examples, and tools in the appropriate place. To do this, type:
sudo make -j1 install
This command requires that you have administrator access on your machine.
Note: There is a potential race condition when running make install with multiple jobs. It is best to only run one make job (-j1) for the install.
Step 4: Set the Environment Variables
In order to use Qt, some environment variables need to be extended.
PATH - to locate qmake, moc and other Qt tools
This is done like this:
In .profile
(if your shell is bash), add the following lines:
PATH=/usr/local/Qt-%VERSION%/bin:$PATH export PATH
In .login
(in case your shell is csh or tcsh), add the following line:
setenv PATH /usr/local/Qt-%VERSION%/bin:$PATH
If you use a different shell, please modify your environment variables accordingly.
That's all. Qt is now installed.
Limitations
Fink
If you have installed the Qt for X11 package from Fink, it will set the QMAKESPEC
environment variable to darwin-g++
. This will cause problems when you build the Qt for macOS package. To fix this, simply unset your QMAKESPEC
or set it to macx-g++
before you run configure
. To get a fresh Qt distribution, run make confclean
on the command-line.
© 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.