1. 程式人生 > >「android」gomobile argument unused during compilation: '-stdlib=libc++'

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

Golan https 時間 地方 ring 下載 但是 pan 開發

【問題】

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++'