微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

golang cgo android ndk 缺少 pthread

如何解决golang cgo android ndk 缺少 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 标志的应用程序。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。