GOARCH
当设置为arm64
(或省略)时,我的应用程序可以正常编译。但是,当我尝试编译 amd64 二进制文件 ( GOOS=darwin GOARCH=amd64 go build
) 时,出现以下错误:
package [mainPackage]\n imports [internalPackageThatUsesC]: build constraints exclude all Go files in [pathToInternalPackageThatUsesC]\n
Run Code Online (Sandbox Code Playgroud)\n[internalPackageThatUsesC]
由 3 个文件组成 \xe2\x80\x93 一个包含实现的 Objective C 文件、一个标头和一个为本机代码提供接口的 Go 文件。以下是 Go 文件:
package [mainPackage]\n imports [internalPackageThatUsesC]: build constraints exclude all Go files in [pathToInternalPackageThatUsesC]\n
Run Code Online (Sandbox Code Playgroud)\n带注释的名称[]
表示它们是实际名称的占位符。
我尝试运行它,arch -x86_64
但输出是相同的。
这里有什么问题?我需要添加另一个构建标签吗?
\nPS 我在 StackOverflow 上发现了有关此错误的问题,但没有一个与针对 amd64 进行编译有关。这个问题是最接近的,但它是特定于 WebAssembly 的。
\n以下是结果go env
:
GO111MODULE=""\nGOARCH="arm64"\nGOBIN=""\nGOCACHE="/Users/fperson/Library/Caches/go-build"\nGOENV="/Users/fperson/Library/Application Support/go/env"\nGOEXE=""\nGOFLAGS=""\nGOHOSTARCH="arm64"\nGOHOSTOS="darwin"\nGOINSECURE=""\nGOMODCACHE="/Users/fperson/.asdf/installs/golang/1.16.4/packages/pkg/mod"\nGONOPROXY=""\nGONOSUMDB=""\nGOOS="darwin"\nGOPATH="/Users/fperson/.asdf/installs/golang/1.16.4/packages"\nGOPRIVATE=""\nGOPROXY="https://proxy.golang.org,direct"\nGOROOT="/Users/fperson/.asdf/installs/golang/1.16.4/go"\nGOSUMDB="sum.golang.org"\nGOTMPDIR=""\nGOTOOLDIR="/Users/fperson/.asdf/installs/golang/1.16.4/go/pkg/tool/darwin_arm64"\nGOVCS=""\nGOVERSION="go1.16.4"\nGCCGO="gccgo"\nAR="ar"\nCC="clang"\nCXX="clang++"\nCGO_ENABLED="1"\nGOMOD="/Users/fperson/workspace/personal_projects/timeow/timeow-mac/go.mod"\nCGO_CFLAGS="-g -O2"\nCGO_CPPFLAGS=""\nCGO_CXXFLAGS="-g -O2"\nCGO_FFLAGS="-g -O2"\nCGO_LDFLAGS="-g -O2"\nPKG_CONFIG="pkg-config"\nGOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/mh/02gmkb756x15018g919jcg980000gn/T/go-build4031963624=/tmp/go-build -gno-record-gcc-switches -fno-common"\n
Run Code Online (Sandbox Code Playgroud)\n