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