如何解决当 GOARCH=386 并导入“C”
我正在使用 CGO 包导入 C 代码,我想构建它的 x86
(386) Windows 版本。我发现这应该通过设置 GOARCH=386
来完成。
它在我的默认环境设置 (GOARCH=amd64) 上正确构建,但是,当我将环境变量设置为“386”时,出现错误:构建约束排除我的文件中的所有 Go 文件。 >
// hello.go
package main
/*
int CFunc() {
}
*/
import "C"
import (
"fmt"
)
func main() {
fmt.Println("Hello,Go!")
}
go.mod
module hello
go 1.16
我愿意:
go build
我明白了:
C:\Users\basse\source\repos\xhptdc8_babel\go\info\hello>go build
package hello: build constraints exclude all Go files in C:\Users\basse\source\repos\xhptdc8_babel\go\info\hello
试验:
- 如果没有导入“C”,我就不会出错。
- 使用 // +build windows,386 或 // +build windows,386,!cgo,在 package main 之前,我仍然得到同样的错误
所有详细信息都可以在 Go Issue
中找到设置
set CGO_ENABLED=1
产生另一种类型的错误:
F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/lib/libmingwthrd.a when searching for -lmingwthrd
F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/lib\libmingwthrd.a when searching for -lmingwthrd
F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/lib/libmingwthrd.a when searching for -lmingwthrd
F:/Work/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmingwthrd
.
.
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。