登录
首页 >  Golang >  Go问答

发现错误:伪造的 R13 寄存器

来源:stackoverflow

时间:2024-02-21 13:27:25 135浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《发现错误:伪造的 R13 寄存器》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我刚刚使用 goland 运行一个 go 项目,并收到如下错误:

# github.com/choleraehyq/pid
../../../.go/pkg/mod/github.com/choleraehyq/[email protected]/pid_go1.5_amd64.s:28: expected pseudo-register; found R13
../../../.go/pkg/mod/github.com/choleraehyq/[email protected]/pid_go1.5_amd64.s:29: expected pseudo-register; found R14
asm: assembly of ../../../.go/pkg/mod/github.com/choleraehyq/[email protected]/pid_go1.5_amd64.s failed

我对这个错误感到困惑,不知道该怎么办。我无法通过此错误消息进行一些调试工作,并且没有从谷歌获得任何有用的信息。 github.com/choleraehyq/pid 是在框架下引用的。

我只是想知道发生了什么以及如何解决它。请帮助我,非常感谢。


正确答案


我只是想知道发生了什么以及如何解决它。

  1. 阅读说明。

Stack Overflow: Help: How to create a Minimal, Reproducible Example

  1. 按照说明进行操作。

例如,

封装goid
github.com/choleraehyq/[email protected]
以编程方式检索当前 goroutine 的 id。

.

$ cat pid.go
package main

import (
    "fmt"

    goid "github.com/choleraehyq/pid"
)

func main() {
    pid := goid.getpid()
    fmt.println(pid)
}
$

.

$ cat go.mod
module example/pid

go 1.17

require github.com/choleraehyq/pid v0.0.10
$

.

$ go version
go version go1.17.5 linux/amd64
$

.

$ go build pid.go && ./pid
# github.com/choleraehyq/pid
../../gopath/pkg/mod/github.com/choleraehyq/[email protected]/pid_go1.5_amd64.s:28: expected pseudo-register; found r13
../../gopath/pkg/mod/github.com/choleraehyq/[email protected]/pid_go1.5_amd64.s:29: expected pseudo-register; found r14
asm: assembly of ../../gopath/pkg/mod/github.com/choleraehyq/[email protected]/pid_go1.5_amd64.s failed
$

升级到最新版本。

.

$ go get -u github.com/choleraehyq/pid
go: downloading github.com/choleraehyq/pid v0.0.13
go: upgraded github.com/choleraehyq/pid v0.0.10 => v0.0.13
$

.

$ cat go.mod
module example/pid

go 1.17

require github.com/choleraehyq/pid v0.0.13
$

.

$ go build pid.go && ./pid
1
$

避免使用旧的、过时的和不受支持的软件版本。

更新:

来自op的评论:

谢谢。原项目是一个大项目,依赖很深。我发现我需要将 github.com/choleraehyq/pid v0.0.13 //indirect 添加到项目的 go.mod 中。 – sh1yu

我的go版本是1.17.6,也有这个问题。

我通过更新软件包版本解决了问题:

go get -u github.com/choleraehyq/pid
go get: upgraded github.com/choleraehyq/pid v0.0.10 => v0.0.13

本篇关于《发现错误:伪造的 R13 寄存器》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>