golang cgo android ndk 缺少 pthread

golang cgo android ndk missing pthread

我正在尝试在 Go 中使用 C 绑定制作一个 android 可执行文件(不是 APK)。这是我的变量:

set GOARCH=arm
set GOOS=linux
set CGO_ENABLED=1
set CC=C:\ndk\bin\arm-linux-androideabi-gcc
set CGO_LDFLAGS=-s -fPIE -pie -rdynamic -Wall -lstdc++ -lbinder -lutils -landroid_runtime -Lbin -linvoke
go build main.go

然而,当我尝试用上面的设置编译它时,它给了我:

# runtime/cgo
c:/ndk/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot find -lpthread
collect2.exe: error: ld returned 1 exit status

在 android 上阅读了一些关于 pthread 的内容后,它说 pthread 库在 android 中不存在。如何克服这个?谢谢。

Android 没有 libpthread,但 libc 包含部分 pthread 实现。您可以使用 GOOS=android 构建具有正确 ld 标志的应用程序。