advanced-go-programming-book icon indicating copy to clipboard operation
advanced-go-programming-book copied to clipboard

3.1.3 定义字符串变量,解决pkgpath.NameData: missing Go type information for global symbol: size 8 错误存在问题

Open XiaodongLoong opened this issue 3 years ago • 4 comments

我发现只需要在pkg.go 文件里面加入var NameData [8]byte就可以了,而不需要其他的修改,具体修改如下:

package pkg

+ var NameData [8]byte
var Name string

https://github.com/chai2010/advanced-go-programming-book/blob/master/ch3-asm/ch3-01-basic.md

XiaodongLoong avatar Sep 07 '20 03:09 XiaodongLoong

I apply the above change, and run it. on mips64le :

[loongson@localhost string]$ go run cmd/main.go 
gopher
[loongson@localhost string]$

on x86_64:

[root@iz2zebexqcz69hfh1b5avwz string]# go run cmd/main.go 

[root@iz2zebexqcz69hfh1b5avwz string]# ls

So there are some difference between mips64le and X86_64.

XiaodongLoong avatar Sep 07 '20 06:09 XiaodongLoong

汇编不跨平台太正常了

cch123 avatar Sep 08 '20 16:09 cch123

我在 go 1.17 发现 string 第二种写法也需要加 NOPTR 了

gamelee avatar Sep 21 '21 01:09 gamelee

我在 go 1.17 发现 string 第二种写法也需要加 NOPTR 了

对于此类版本兼容性问题,是否应该对内容进行修订,直接删除新版本不再兼容的写法或者在文中标注该写法支持的版本?

mstmdev avatar Jul 13 '22 09:07 mstmdev