首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >golang 1.16 cgo/clang在darwin/arm64上构建失败

golang 1.16 cgo/clang在darwin/arm64上构建失败
EN

Stack Overflow用户
提问于 2021-01-14 01:35:13
回答 1查看 837关注 0票数 2

我正在尝试用cgo构建一些go代码,但在darwin/arm64go1.16beta上构建失败。

我的go环境是

代码语言:javascript
运行
复制
GO111MODULE="off"
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/a/Library/Caches/go-build"
GOENV="/Users/a/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/a/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/a/go"
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
GOROOT="/usr/local/go"
GOSUMDB="off"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.16beta1"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/gg/fgcf1wps4tz51d_x38ybzpv00000gn/T/go-build2055022242=/tmp/go-build -gno-record-gcc-switches -fno-common"

开始构建

代码语言:javascript
运行
复制
>>>
/usr/local/go/pkg/tool/darwin_arm64/link: running clang failed: exit status 1
ld: warning: ignoring file /var/folders/gg/fgcf1wps4tz51d_x38ybzpv00000gn/T/go-link-948954574/go.o, building for macOS-x86_64 but attempting to link with file built for unknown-arm64
...
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

去构建-v -ldflags="-linkmode=internal“

代码语言:javascript
运行
复制
>>>

loadmacho: /Users/haoliu/Library/Caches/go-build/67/6777448f029f7eb3953d5848709f80c5ab0f3bf855d852152a1d23834392afea-d(_x001.o): mach-o object but not arm64
loadmacho: /Users/haoliu/Library/Caches/go-build/67/6777448f029f7eb3953d5848709f80c5ab0f3bf855d852152a1d23834392afea-d(_x002.o): mach-o object but not arm64

我尝试下载llvm/clang并从源代码构建,但clang目标仍然是x86_64-apple-darwin20.1.0

EN

回答 1

Stack Overflow用户

发布于 2021-01-16 18:31:34

使用homebrew/arm64下载llvm/arm64后,问题解决了。

代码语言:javascript
运行
复制
arch=arm64 brew install llvm
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65706980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档