goarch=arm64
时忽略 myrepo/gotvm/*
및 기타 모든 경우에 완전한 저장소를 구축하기 위해 go 저장소를 구축하고 싶습니다.
프로젝트 폴더 구조는 다음과 같습니다.
으아아아amd64에서 구축하면 모든 것이 잘 작동합니다:
goos=linux goarch=amd64 go build -o amdbuild main.go
arm64를 기반으로 구축
goos=linux goarch=arm64 go build -o armbuild main.go
바이너리가 생성되지 않기 전에 다음 오류가 발생합니다.
으아아아 package gotvm
(array.go
, device.go
, gotvm.go
)을 사용하여 각 파일의 상단에 다음 줄을 추가할 때도 마찬가지입니다.
내가 시도한 다른 단계:
go clean -modcache
package gotvm
를 여기에도 비슷한 질문이 있습니다: (시뮬레이션 패키지)
, 그러나 이는 전체 폴더를 무시합니다. 조건이 arch
不是 arm64
인 폴더를 무시하고 싶습니다.
tl;dr; 내 저장소를 arm64와 amd64로 크로스 컴파일할 수 있는 방법이 있나요? arm64 빌드에서 tvm을 무시하고 싶습니다.
사양:
go1.20.4 linux/amd64
package 절만 포함하는 go 파일을 gotvm
文件夹中可以解决此问题。例如,doc.go
파일에 추가하세요.
하지만 이 문제가 발생하면 대부분 이 패키지를 가져오는 파일이 하나 이상 있다는 뜻이며 goarch=arm64
不排除这个文件。也许您应该从此文件中删除导入(或者对于 goarch=arm64
이 파일도 제외합니다.
문제를 설명하기 위해 데모를 추가하겠습니다. 파일은 다음과 같습니다:
으아아아go.mod:
으아아아gotvm/gotvm.go:
으아아아main.go:
으아아아이 데모에서는 main.go
中删除 _ "example.com/m/gotvm"
或添加前面提到的 doc.go
文件即可解决该问题。我认为,最好从 main.go
中删除 _ "example.com/m/gotvm"
로 시작하세요.
위 내용은 ARM64 바이너리를 빌드할 때 gotvm을 무시하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!