No compiler can produce code for this Qt version - Apple silicon

Viewed 1828

I am trying to port a linux project to macOS. However I can't even setup the build environment on an M1 Macbook Air 2020 (Apple silicon). I installed qt-creator, cmake, qt 5.15 and 6.1 using homebrew. I added the qt versions and cmake in the qt-creator settings. When I want to put everything together in the kits tab, I get the error in the title.

Checking the compilers tab, I realized that the autodetected clang compilers are x86 only. So I cloned the x86 clang++ entry and changed the ABI from x64 to arm. This should work I though, since clang++ is a unversial binary as file /usr/bin/clang++ reports

/usr/bin/clang++: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/usr/bin/clang++ (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/clang++ (for architecture arm64e): Mach-O 64-bit executable arm64e

What do I have to do to make Qt Creator able to build universal binaries? Or at least any build at all?

1 Answers

You need to install Qt 6.2 version which brings support for macOS on Apple Silicon. Porting tasks were tracked under this bug report. Currently, Qt5 doesn't support building for M1 chip.

In addition to updating to Qt6.2 you also need to update your Qt Creator version to Qt Creator 6. Alternatively, you can try the build flags below with Qt Creator 5.

As Qt Creator 5 is built as a non-universal binary, it will default to producing x86_64 binaries, regardless of which architecture your machine is. To build for arm64, add -DCMAKE_OSX_ARCHITECTURES=arm64 explicitly to the "Initial CMake parameters" of the project build settings, or QMAKE_APPLE_DEVICE_ARCHS=arm64 to the qmake "Additional arguments" field.

Related