我正在尝试使用 go 制作一个跨平台的本机库,并找到了 gomobile 的本教程。但是,当我尝试初始化它时(即使我给出了 Android NDK 路径,尽管我没有在下面的示例中)它似乎失败了,因为它找不到stdlib.h
.
我试图对 cgo 进行一些调查,但没有任何反应,希望更熟悉生态系统的人可以为我指明正确的方向。
$ gomobile init
gomobile: go install -gcflags=-shared -ldflags=-shared -pkgdir=/Users/myusername/go/pkg/gomobile/pkg_android_arm std failed: exit status 2
# runtime/cgo
_cgo_export.c:2:10: fatal error: 'stdlib.h' file not found
我的环境...(我在 OS X El Capitan 上,全新安装 go1.9 darwin/amd64)
$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/myusername/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/rx/l7pzlrld2mqczrfb36t536hh0000gp/T/go-build735124167=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
编辑:(添加失败初始化的详细输出)
$ gomobile初始化-v # 安装 golang.org/x/mobile/gl。 # 安装 golang.org/x/mobile/app. # 安装 golang.org/x/mobile/exp/app/debug. # 为 android/arm 安装 std。 运行时/内部/系统 运行时/内部/原子 运行 同步/原子 统一码 内部/种族 错误 unicode/utf8 数学 数学/位 容器/列表 容器/环 加密/微妙 加密/内部/密码 内部/网络跟踪 运行时/cgo 供应商/golang_org/x/crypto/poly1305 同步 编码 unicode/utf16 图像/颜色 内部/CPU 内部/系统调用/窗口 内部/系统调用/Windows/注册表 图像/颜色/调色板 内部/系统调用/windows/sysdll io 系统调用 内部/单程 运行时/比赛 # 运行时/cgo _cgo_export.c:2:10:致命错误:找不到“stdlib.h”文件 供应商/golang_org/x/text/secure 供应商/golang_org/x/text/unicode 字节 字符串 哈希 密码/密码 运行时/跟踪 哈希/CRC32 哈希/adler32 加密/hmac 哈希/CRC64 哈希/fnv 供应商/golang_org/x/text/transform 文本/制表机 布菲欧 小路 html 字符串转换 数学/兰特 数学/cmplx 时间 内部/系统调用/unix 反映 加密/aes 加密货币 加密/rc4 编码/base64 编码/base32 编码/ascii85 加密/sha512 加密/md5 加密/sha1 加密/sha256 图片 内部/民意调查 图像/内部/imageutil 图像/绘图 图片/JPEG 操作系统 操作系统/信号 fmt 种类 编码/二进制 路径/文件路径 压缩/bzip2 编码/pem 容器/堆 正则表达式/语法 运行时/调试 加密/DES 供应商/golang_org/x/crypto/chacha20poly1305/internal/chacha20 供应商/golang_org/x/crypto/curve25519 供应商/golang_org/x/crypto/chacha20poly1305 io/ioutil 压缩/扁平化 语境 存档/tar 数学/大 压缩/lzw 编码/十六进制 调试/矮人 调试/gosym 调试/plan9obj 数据库/sql/驱动程序 编码/csv 编码/gob 编码/json 数据库/sql 编码/xml 存档/压缩 压缩/gzip 压缩/zlib 调试/男子气概 调试/精灵 调试/PE 日志 供应商/golang_org/x/net/http2/hpack 供应商/golang_org/x/text/unicode/bidi 供应商/golang_org/x/text/unicode/norm 网络/网址 哑剧 哑剧/引用可打印 网络/http/内部 旗帜 加密/dsa 加密/椭圆 编码/asn1 加密货币/兰特 去/令牌 去/扫描仪 加密/rsa 供应商/golang_org/x/text/secure/bidirule 正则表达式 文本/模板/解析 前进/前进 去/常数 操作系统/执行 文本/扫描仪 加密/ecdsa 加密/x509/pkix 图片/gif 图片/png 供应商/golang_org/x/net/idna 索引/后缀数组 测试 内部/跟踪 运行时/pprof 文本/模板 网络/内部/socktest 操作系统/用户 运行时/pprof/内部/配置文件 测试/iotest 测试/快速 去/解析器 去/打印机 测试/内部/testdeps 内部/测试环境 去/文档 html/模板 去/类型 去/格式 去/建造 去/内部/gccgoimporter 去/内部/gcimporter 去/内部/srcimporter 去/进口商 gomobile:去安装 -gcflags=-shared -ldflags=-shared -pkgdir=/Users/myusername/go/pkg/gomobile/pkg_android_arm -v std 失败:退出状态 2