92
votes

GO 1.18 Build Error sur Mac: "Unix / Syscall_darwin.1_13.go: 25: 3: // Go: le nom de linkname doit se référer à la fonction ou une variable déclarée"

J'ai mis à niveau pour aller 1.18 sur Mac 12 +.

'Go Build' échoue avec des erreurs comme:

# golang.org/x/sys/unix
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/syscall_darwin.1_13.go:25:3:
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.1_13.go:27:3:
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.1_13.go:40:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:28:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:43:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:59:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:75:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:90:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:105:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:121:3: 
//go:linkname must refer to declared function or variable
../../gopath/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/zsyscall_darwin_amd64.go:121:3: 
too many errors

Compilation finished with exit code 2


0 commentaires

4 Réponses :


258
votes

Cela a été dû à une ancienne version de golang.org/x/sys (mentionné dans ce problème ). Fix est à mettre à jour avec:

go get -u golang.org/x/sys


4 commentaires

J'ai exécuté aller get -u golang.org/x/sys mais mon build échoue avec l'erreur ci-dessus: /go/pkg/mod/golang.org/x/sys@v0. 0.0-20201112073958-5CBA98289‌ 4DD / UNIX / SYSCALL_DAR‌ WIN.1_13.go: 29: 3: // Go: le nom de linknom doit se référer à la fonction ou une variable déclarée


Y a-t-il une solution permanente à cela? Il semble que je dois faire ça pour chaque projet que j'ai commencé


'Go Get' n'est plus pris en charge en dehors d'un module. Quelqu'un connaît-il une solution mise à jour?


Ref allez obtenir qui n'est plus pris en charge en dehors d'un module - voir Les notes de libération "en mode GOPATH (avec go111module = off), allez obtenir des constructions et installe des packages, comme avant.". Donc, si vous n'utilisez pas de modules set go111module = off (vous devrez le faire pour construire de toute façon).



4
votes

comme documentation mentionné,

  • La manière la plus simple: exécutez get -u golang.org/x/sys.
  • Manuel: Git Clone Le référentiel à $ gopath / src / golang.org / x / sys .

  • 0 commentaires

    2
    votes

    Si allez chercher -u golang.org/x/sys ne fonctionne pas, assurez-vous de supprimer cette ligne dans votre go.mod :

    replace golang.org/x/sys => golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6
    


    1 commentaires

    go.mod n'a pas la ligne mentionnée et Go Get Command ne résout pas non plus. Que peut-on faire d'autre?



    0
    votes

    J'ai fait face à la même erreur et j'ai corrigé en faisant ce qui suit:

    J'ai d'abord couru:

    ❯ go install .
    ❯ terraform --version
    Terraform v0.13.5
    

    pour mettre à jour le x / sys bibliothèque.

    Ensuite, il a imprimé quelques informations importantes:

    go: downloading github.com/hashicorp/go-cleanhttp v0.5.1
    go: downloading github.com/hashicorp/go-rootcerts v1.0.0
    go: downloading github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
    go: downloading github.com/mitchellh/cli v1.0.0
    [...]
    go: downloading github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db
    go: downloading github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412
    go: downloading github.com/Azure/go-autorest/autorest/to v0.4.0
    

    avec cela entre les mains, je suis allé à go.mod et J'ai placé la ligne suivante (avant le go 1.14 ligne):

    go mod vendor
    

    et enfin j'ai couru:

    replace golang.org/x/sys => golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e
    


    0 commentaires