Kam*_*lia 10 android gcc clang android-ndk c++11
我试图使用clang而不是gcc构建一个Android ndk应用程序,因为知道我已经在Android.mk中尝试了这个
NDK_TOOLCHAIN_VERSION := clang
LOCAL_CLANG :=true
LOCAL_LDLIBS := -lc++_static
LOCAL_CFLAGS := -std=c++11
Run Code Online (Sandbox Code Playgroud)
并在Application.mk中
APP_PLATFORM := android-9
APP_STL := libc++_static
APP_CPPFLAGS := -fexceptions -frtti
APP_ABI := armeabi-v7a
Run Code Online (Sandbox Code Playgroud)
但它总是给我std库的链接错误.
任何帮助表示赞赏!
ph0*_*h0b 13
*.mk文件中有几个错误:
libc++_static对于APP_STL来说,它不是一个合适的值,它应该在c++_static这里.
NDK_TOOLCHAIN_VERSION在Android.mk中设置时没有效果,应该在Application.mk中设置
LOCAL_CLANG 是在AOSP系统模块内部使用的变量,而不是在使用NDK时.
由于您将APP_STL设置为c++_static,因此NDK工具链将正确地告诉链接器要使用哪个lib,您不应该添加LOCAL_LDLIBS := -lc++_static.
另外,你APP_ABI只设置为armeabi-v7a,是故意的吗?Android也可以在其他体系结构上运行,如果您也相应地编译库,您将获得更好的性能.您可以设置APP_ABI到all或架构的名单armeabi-v7a x86...
综上所述:
Android.mk
LOCAL_CFLAGS := -std=c++11
Run Code Online (Sandbox Code Playgroud)
Application.mk
NDK_TOOLCHAIN_VERSION := clang
APP_PLATFORM := android-9
APP_STL := c++_static
APP_CPPFLAGS := -fexceptions -frtti
APP_ABI := all
Run Code Online (Sandbox Code Playgroud)
如果您继续遇到编译代码的麻烦,请显示您遇到的确切错误.
| 归档时间: |
|
| 查看次数: |
11773 次 |
| 最近记录: |