Go语言问题求解答

先说明一下环境
windows系统,go版本是1.14.1

我从github上拉了最新版本的go源码(1.17),然后对这个源码进行了一些简单的修改(在某个地方print了一句话这种),然后使用go/src/make.bat对这个修改后的源码进行了编译,编译通过后。我使用这个我修改过的go二进制go run了一个demo,然后却报错了,大概情况如下图所以,我想着可能是两个go版本不兼容导致的,所以就从git上拉取了个我机器上相同版本(1.14.1)重新进行了修改编译,然后直接编译不通过了,初步的原因我了解到编译1.5以上的go源码需要使用1.4版本的go,但是我前面编译1.17就没有使用1.4的go,但是居然成功了…有没有哪个大佬遇到过这种问题或者感兴趣的讨论一下……网上根本找不到解决方法…

#golang工程师#
全部评论
我相继拉取了13 15 16三个版本来编译,发现了一个问题,只能编译比当前系统版本高的go源码,因为我电脑是14版本,我编译14一下包括14就会失败…编译15及其以上就能成功,但是成功后go run demo还是跑不动
点赞 回复 分享
发布于 2021-04-14 22:19
没有找到上述问题的根源,但是找到了一种解决方法 :我使用go14来编译我修改的go15源码,生成go二进制,然后再用这个go二进制来编译demo。
点赞 回复 分享
发布于 2021-04-15 01:56
猜测可能是不同版本不兼容的问题,当使用go17二进制来编译demo的过程中,会调用go的代码,这时候调用的是go14的代码,不同版本之间可能存在实现上的差异,导致调用失败…
点赞 回复 分享
发布于 2021-04-15 01:58
这时候只需要将项目的go目录(goroot)修改为go17所在目录,这样编译的过程中调用go代码时就会调用go17的代码,这样就不会出现不兼容的问题
点赞 回复 分享
发布于 2021-04-15 01:59

相关推荐

11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务