【问题标题】:Enabling C++17 on Android using latest NDK (r18)使用最新的 NDK (r18) 在 Android 上启用 C++17
【发布时间】:2018-09-30 22:30:02
【问题描述】:

从这里 (https://developer.android.com/ndk/guides/cpp-support) 看来,Android NDK r18 提供了对 C++17 的支持。尽管页面上的示例仅显示了如何为 ndk 构建脚本方法启用它。我的项目正在使用 CMake。

我尝试了此处概述的方法,它不是特定于 android 的 (How to enable C++17 in CMake),但我收到编译错误,表明我的编译器无法将标准设置为 17。

有人知道怎么做吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    CMAKE_CXX_FLAGS_DEBUGCMAKE_CXX_FLAGS_RELEASE 中包含“-std=c++17”标志,如下所示:

    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -O0 -std=c++17 -fexceptions")
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -std=c++17 -fexceptions -DNDEBUG")
    

    请注意,其余标志仅用于示例,会根据您的需要而有所不同。

    【讨论】:

      【解决方案2】:

      在您的 CMakeLists.txt 中,您可以指定使用的 C++ 标准:

      set(CMAKE_CXX_STANDARD 17)
      

      注意:这只适用于“第一个”CMakeLists.txt!如果您从您的 Android Studio 中包含其他 CMakeLists.txt,则不会使用 C++17。

      【讨论】:

        猜你喜欢
        • 2018-11-04
        • 1970-01-01
        • 1970-01-01
        • 2016-12-29
        • 2013-06-13
        • 2014-01-27
        • 1970-01-01
        • 2018-03-11
        • 1970-01-01
        相关资源
        最近更新 更多