voi*_*ter 5 c++ android clang android-ndk c++14
我正在使用Android NDK r10d.我的application.mk设置如下:
APP_CFLAGS := -DANDROID -DBUILD_OGLES2
APP_CPPFLAGS := $(APP_CFLAGS) -fexceptions -frtti -std=c++14
APP_STL := gnustl_static
APP_ABI := armeabi-v7a
APP_PLATFORM := android-15
NDK_TOOLCHAIN_VERSION := clang
Run Code Online (Sandbox Code Playgroud)
我std::make_unique在我的代码中使用它并没有编译(说它没有找到).从C++ 14开始,此功能应该在STL中可用.我做了一些探讨,似乎clang没有在NDK中使用GNU STL 4.9.如果是的话,它会在我看到<memory>头部内部时可用.
我在这里错过了什么?有没有办法使用4.9 GNU STL与clang?
make_unique无法通过 clang 的 gnustl 获得。您可以尝试使用 LLVM libc++ 代替。在您的Application.mk中设置它:
APP_STL := c++_static
NDK_TOOLCHAIN_VERSION := clang
Run Code Online (Sandbox Code Playgroud)
编辑:强制使用 GNU STL 4.9(通过更改内部的 TOOLCHAIN_VERSION android-ndk-r10d/toolchains/*toolchain_name*-clang3.5/setup.mk)会使构建崩溃:
clang++: /s/ndk-toolchain/src/llvm-3.5/llvm/tools/clang/lib/AST/DeclBase.cpp:1293: clang::DeclContext::lookup_result clang::DeclContext::lookup(clang::DeclarationName): Assertion 'DeclKind != Decl::LinkageSpec && "Should not perform lookups into linkage specs!"' failed.
| 归档时间: |
|
| 查看次数: |
2338 次 |
| 最近记录: |