「android」gomobile argument unused during compilation: '-stdlib=libc++'

Posted ftrako

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「android」gomobile argument unused during compilation: '-stdlib=libc++'相关的知识,希望对你有一定的参考价值。

【问题】

android基于go的NDK开发中配置gomobile参考官方WIKI:https://github.com/golang/go/wiki/Mobile,大致步骤:

1、下载gomobile:$ go get golang.org/x/mobile/cmd/gomobile

2、初始化 $ gomobile init
但是使用gomobile编译官方例子($ gomobile build -target=android golang.org/x/mobile/example/basic)

时提示错误:argument unused during compilation: ‘-stdlib=libc++‘

版本:go 1.11,mac os10.13.1

【解决】

网上居然没搜到该问题,难道就我遇到了这个问题? 开始以为是clang,gcc引起的,更新了go版本,无效。

从字面上理解这个错误,是编译时带了-stdlib=libc++,但是却没有用到该参数???

libc++是针对clang编译器特别重写的C++标准库,libstdc++是gcc的,单独编译用gcc和clang编译cpp文件,无论是否带-stdlib=libc++,均正常。

在官方的github上不小心搜到了一样的问题,我去!花了这么多时间。

修改android的ndk中的build/tools/make_standalone_toolchain.py,去掉-stdlib=libc++,两个地方:

1、flags = ‘-target {} -stdlib=libc++‘.format(target)改为flags = ‘-target {}‘.format(target)

2、cxx_flags = flags + ‘ -stdlib=libc++‘改为cxx_flags = flags

修改之后重新 $ gomobile init

以上是关于「android」gomobile argument unused during compilation: '-stdlib=libc++'的主要内容,如果未能解决你的问题,请参考以下文章

智汀云盘-开发指南android:文件/文件夹上传下载:gomobile

用Go语言写Android应用 - 用Go写本地应用

如何用Go语言开发Android应用

golang gomobile 环境搭建

gomobile

Android调用go语言 - 详细版