在 Qt Android 中使用 C++17

Posted

技术标签:

【中文标题】在 Qt Android 中使用 C++17【英文标题】:Use C++17 in Qt Android 【发布时间】:2018-02-06 15:56:54 【问题描述】:

Qt 建议使用 android NDK r10e,它使用不编译 C++17 代码的 GCC 4.9。那么仍然可以用 C++17 编写 Qt Android 应用程序吗?

【问题讨论】:

出于兴趣,如果您选择使用更高版本的 NDK,QT 是否会遇到任何副作用? @MichaelDodd 如果我使用 r16,应用程序将无法启动。根据wiki,这个问题似乎很常见 您必须使用 clang 和更新的 NDK。这将生成大约二进制文件。大 30%,目前不受 Qt 支持。但有些人报告说它可以工作。 我不确定,但可能是Android平台插件在使用工具链时与应用程序捆绑在一起造成了限制.. 【参考方案1】:

对于 C++17 支持,您需要使用 NDK 17 或更高版本。 你可以使用 Qt 5.12.X 对我来说很好用 NDK 19。

NDK下载页面:https://developer.android.com/ndk/downloads/index.html

PS:我尝试使用r20但没有成功,然后我正在使用r19c。

我没有尝试使用 r18c,但要获取 r19c 链接,请像示例一样替换 url 的版本部分。 (MacOS 的链接)

例如:https://dl.google.com/android/repository/android-ndk-r20-darwin-x86_64.zip

变成:https://dl.google.com/android/repository/android-ndk-r19c-darwin-x86_64.zip

来源: https://doc.qt.io/qt-5/android-getting-started.html

https://developer.android.com/ndk/guides/cpp-support?hl=pt-br

【讨论】:

以上是关于在 Qt Android 中使用 C++17的主要内容,如果未能解决你的问题,请参考以下文章

从 QT / C++ 项目访问 Android 日历提供程序

QT 5.1.1 android打包错误

如何修复 Qt 需要 C++17 编译器?

在启动时启动 Qt 应用程序 - Android

✿4-The Basics-Qt Quick and QML

✿4-The Basics-Qt Quick and QML