用于ARM上的Windows的Qt-今天,它比以往任何时候都更有趣!

Qt for Windows on ARM - today, it is more interesting than ever!

用于ARM上的Windows的Qt-今天,它比以往任何时候都更有趣!

May 21, 2024 by Vladimir Minenko | Comments

​2024年5月21日 Vladimir Minenko |评论

Qt is the leading framework for building cross-platform and multi-platform applications on desktops and embedded devices. Countless ARM-based devices use Qt to provide modern UX today. With the rise of ARM architecture in desktop computing, developers using Qt benefit from Qt's long track record in both domains: desktop and embedded.

Qt是在台式机和嵌入式设备上构建跨平台和多平台应用程序的领先框架。今天,无数基于ARM的设备使用Qt来提供现代用户体验。随着ARM架构在桌面计算中的兴起,使用Qt的开发人员受益于Qt在桌面和嵌入式两个领域的长期记录。

Yesterday, on May 20th, Microsoft launched Copilot+ PCs with the new Surface Laptop and Surface Pro  ARM-based PCs as well as with multiple other new products annoucned by almost all major manufacturers. This is exciting news for Qt developers and for Qt in general.

昨天,也就是5月20日,微软推出了Copilot+PC,推出了新的基于Surface Laptop和Surface Pro ARM的PC,以及几乎所有主要制造商宣布的其他多种新产品。这对于Qt开发人员和整个Qt来说都是一个激动人心的消息。

As you know, Qt supports Windows and has been used on this platform since the early 90s. It has a long, interesting history and an uncountable number of Qt applications running today, in 2024, on millions of Windows PCs.

如您所知,Qt支持Windows,自90年代初以来一直在该平台上使用。它有着悠久而有趣的历史,2024年,它在数百万台Windows PC上运行了无数的Qt应用程序。

Qt on Windows on ARM


Qt 6 has been supporting Windows on ARM as a Technology Preview since Qt 6.2, reflecting Qt's early commitment to this emerging, and since today, an new, exciting platform. This implementation in Qt 6.2 allows cross-compilation on an x86_64 development machine and remote deployment to a Windows on ARM target. See this blog post for more details.

​自Qt 6.2以来,Qt 6一直支持ARM上的Windows作为技术预览版,这反映了Qt早期对这一新兴平台的承诺,从今天起,这是一个令人兴奋的新平台。Qt 6.2中的此实现允许在x86_64开发机器上进行交叉编译,并远程部署到ARM上的Windows目标。有关更多详细信息,请参阅此博客文章。

Targeting the upcoming Qt 6.8, we are extending this Technology Preview implementation to run directly on Windows on ARM desktops and so to make remote deployment only optional. This would basically reflect the well-known desktop application development workflow used by most developers. Beyond the use of Windows DevKit in the past, we verified implementation on the real Copilot+ PC Qualcomm hardware in a cloud service. The good news was a kind of expected: Qt ran well there! Thanks to Linaro and Qualcomm for making this possible! 

​针对即将推出的Qt 6.8,我们正在将此技术预览实现扩展到直接在ARM台式机上的Windows上运行,从而使远程部署成为可选。这将基本上反映大多数开发人员使用的众所周知的桌面应用程序开发工作流。除了过去使用Windows DevKit之外,我们还在云服务中验证了在真正的Copilot+PC高通硬件上的实现。好消息是意料之中的:Qt在那里跑得很好!感谢Linaro和高通公司使这一切成为可能! 

At the time of writing this, Qt does not support the new ARM64EC (“Emulation Compatible”) application binary interface (ABI) yet. This is a known gap, and we are currently working to close it. Depending the on the progress, we are considering to support the ARM64EC ABI in our final releases. The native ARM64 ABI is supported as already mentioned since a longer time in Qt for Windows on ARM.

​在撰写本文时,Qt还不支持新的ARM64EC(“Emulation Compatible”)应用程序二进制接口(ABI)。这是一个已知的差距,我们目前正在努力弥补。根据进展情况,我们正在考虑在最终版本中支持ARM64EC ABI。如前所述,支持本机ARM64 ABI,因为在ARM上的Qt for Windows中使用时间更长。

We aim to complete these works for a full release in Qt 6.8.x as early as possible. After a few issues are resolved, we will make preview packages available in the Qt Installer in the next weeks for 6.7.x as well. Stay tuned!

我们的目标是尽早完成这些工作,以便在Qt 6.8.x中全面发布。在一些问题得到解决后,我们将在接下来的几周内在Qt安装程序中提供6.7.x的预览包。敬请期待!

With Qt 6.8, Windows on ARM will become one of the standard desktop platforms supported in Qt.

有了Qt 6.8,ARM上的Windows将成为Qt支持的标准桌面平台之一。

I'm looking forward to see what is coming up on the Microsoft Build 2024 event which starts today! Some of our colleagues will attend the event.

​我很期待今天开始的微软Build 2024活动会有什么进展!我们的一些同事将出席此次活动。

MSBuild_AltCopilot

Let us know about your plans and needs in the support of Windows on ARM in Qt now and in the future.

让我们了解现在和将来在Qt中支持ARM上的Windows的计划和需求。

Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: linux-aarch64-gnu-g++ (arm64, CPU features: neon) Target compiler: gcc 6.3.1 Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile neon precompile_header shared rpath release c++11 c++14 concurrent dbus reduce_exports stl Build options: Mode ................................... release Optimize release build for size ........ no Building shared libraries .............. yes Using C standard ....................... C11 Using C++ standard ..................... C++14 Using ccache ........................... no Using gold linker ...................... yes Using new DTAGS ........................ yes Using precompiled headers .............. yes Using LTCG ............................. no Target compiler supports: NEON ................................. yes Build parts ............................ libs Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... no Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... yes udev ................................... no Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no iconv .................................. yes ICU .................................... no Tracing backend ........................ Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no Linux AF_NETLINK ....................... yes OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no OpenSSL 1.1 ............................ no DTLS ................................... yes SCTP ................................... no Use system proxies ..................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ no HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ no EGL .................................... no OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ no OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no OpenGL ES 3.2 ........................ no Vulkan ................................. no Session Management ..................... yes Features used by QPA backends: evdev .................................. yes libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. no xkbcommon .............................. no X11 specific: XLib ................................. no EGL on X11 ........................... no QPA backends: DirectFB ............................... no EGLFS .................................. no LinuxFB ................................ yes VNC .................................... yes Mir client ............................. no Qt Sql: SQL item models ........................ yes Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... no Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt Testlib: Tester for item models ................. yes Qt SerialBus: Socket CAN ............................. yes Socket CAN FD .......................... yes Qt QML: QML network support .................... yes QML debugging and profiling support .... yes QML sequence object .................... yes QML list model ......................... yes QML XML http request ................... yes QML Locale ............................. yes QML delegate model ..................... yes Qt Quick: Direct3D 12 ............................ no AnimatedImage item ..................... yes Canvas item ............................ yes Support for Qt Quick Designer .......... yes Flipable item .......................... yes GridView item .......................... yes ListView item .......................... yes TableView item ......................... yes Path support ........................... yes PathView item .......................... yes Positioner items ....................... yes Repeater item .......................... yes ShaderEffect item ...................... yes Sprite item ............................ yes Qt Scxml: ECMAScript data model for QtScxml ...... yes Qt Gamepad: SDL2 ................................... no Qt 3D: Assimp ................................. yes System Assimp .......................... no Output Qt3D Job traces ................. no Output Qt3D GL traces .................. no Use SSE2 instructions .................. no Use AVX2 instructions .................. no Aspects: Render aspect ........................ yes Input aspect ......................... yes Logic aspect ......................... yes Animation aspect ..................... yes Extras aspect ........................ yes Qt 3D Renderers: OpenGL Renderer ........................ yes Qt 3D GeometryLoaders: Autodesk FBX ........................... no Qt Wayland Client ........................ no Qt Wayland Compositor .................... no Qt Bluetooth: BlueZ .................................. no BlueZ Low Energy ....................... no Linux Crypto API ....................... no WinRT Bluetooth API (desktop & UWP) .... no Qt Sensors: sensorfw ............................... no Qt Quick Controls 2: Styles ................................. Default Fusion Imagine Material Universal Qt Quick Templates 2: Hover support .......................... yes Multi-touch support .................... yes Qt Positioning: Gypsy GPS Daemon ....................... no WinRT Geolocation API .................. no Qt Location: Qt.labs.location experimental QML plugin . yes Geoservice plugins: OpenStreetMap ........................ yes HERE ................................. yes Esri ................................. yes Mapbox ............................... yes MapboxGL ............................. no Itemsoverlay ......................... yes QtXmlPatterns: XML schema support ..................... yes Qt Multimedia: ALSA ................................... no GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux ........................ yes OpenAL ................................. no PulseAudio ............................. no Resource Policy (libresourceqt5) ....... no Windows Audio Services ................. no DirectShow ............................. no Windows Media Foundation ............... no Qt Tools: QDoc ................................... no Qt WebEngine: Embedded build ......................... yes Pepper Plugins ......................... no Printing and PDF ....................... no Proprietary Codecs ..................... no Spellchecker ........................... yes Native Spellchecker .................... no WebRTC ................................. no Use System Ninja ....................... no Geolocation ............................ yes WebChannel support ..................... yes Use v8 snapshot ........................ yes Kerberos Authentication ................ no Building v8 snapshot supported ......... yes Use ALSA ............................... no Use PulseAudio ......................... no Optional system libraries used: re2 .................................. no icu .................................. no libwebp, libwebpmux and libwebpdemux . no opus ................................. no ffmpeg ............................... no libvpx ............................... no snappy ............................... no glib ................................. no zlib ................................. yes minizip .............................. no libevent ............................. no jsoncpp .............................. no protobuf ............................. no libxml2 and libxslt .................. no lcms2 ................................ no png .................................. no JPEG ................................. no harfbuzz ............................. no freetype ............................. no x11 .................................. no Required system libraries: fontconfig ........................... no dbus ................................. no nss .................................. no khr .................................. no glibc ................................ yes Required system libraries for qpa-xcb: libdrm ............................... no xcomposite ........................... no xcursor .............................. no xi ................................... no xrandr ............................... no xtst ................................. no Note: Also available for Linux: linux-clang linux-icc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值