Closed wangwenbin closed 10 years ago
osx上正常我试了,但是我没有windows lol
在 2014年5月15日,21:28,wangwenbin notifications@github.com 写道:
我自己做了个小程序,使用termbox-go作为一个组件。我在自己的ubuntu上跨平台编译的exe可以正常运行,但是使用gobuild编译下载的文件不能正常运行,会抛出异常。 因此我觉得可能是[gobuild]或者平台的问题,其中有可能是平台的termbox版本不够新的原因,纯瞎猜测。
由于windows下面复制不了终端输出,我暂不提供全部的异常内容了,如果需要我再补上。 termbox-go没有使用cgo,也没有使用os/user。当然我也没有使用他们。
这个是下载文件的地址,选的是windows 。 http://gobuild.io/download/github.com/wangwenbin/2048-go linux的正常工作,osx的没有测试。 出错会在游戏2048失败或者成功的时候。我不知道为什么,可能也就是输出“Win”或者“Lose”的时候。
这个bug也可能是我的代码的原因,但是目前我还没有找到问题。我如果找到更简单重现bug的代码,我会补上。
— Reply to this email directly or view it on GitHub.
借了其他人的电脑测试了下,结束的时候windows上直接退出了
@codeskyblue 恩,确实是这样的。 先打开cmd,然后cd到对应目录下用命令行启动,在崩溃的时候能看到异常输出。 我在ubuntu下面跨平台编译的exe是正常的,没有异常。
好奇怪, 程序里可以加下版本, 看看编译出来是不是最新版。(理论上就是最新版)。 平台用的是 go1.2.1. 你用的那个go
我在ubuntu下面编译的,$go version
打印出来的是:
go version go1.2.1 linux/amd64
我不知道怎么在程序里面加版本,我用Google找了一下但是没有找到正确的方法,这个得请教你一下了。
平台下载的版本在wineconsle里面运行也是会崩溃的,如果你那里有wine的话,就不用找windows的电脑了。
很抱歉,我发现这个bug是我自己的代码的问题。
因为termbox在windows和linux下面表现不一样,我使用termbox.SetCell
参数传递不够严谨,在linux下面没有问题,但是在windows下面有panic。
我使用这样的代码导致了该bug。
termbox.SetCell(0, 0, ‘a’, 100, 222)
//100和222是自己随便写的,索引一个颜色,在linux下面没有发现问题,但是在windows下面会导致panic
改为:
termbox.SetCell(0, 0, 'a', termbox.ColorRed, termbox.ColorBlack)
就不会出现这个bug了。
我在本地修复了代码,由于粗心提交到github上失败也没有注意。
给 @codeskyblue 带来麻烦我觉得十分的愧疚。谢谢你的热心帮助!
不客气
我自己做了个小程序,使用termbox-go作为一个组件。我在自己的ubuntu上跨平台编译的exe可以正常运行,但是使用gobuild编译下载的文件不能正常运行,会抛出异常。 因此我觉得可能是[gobuild]或者平台的问题,其中有可能是平台的termbox版本不够新的原因,纯瞎猜测。
由于windows下面复制不了终端输出,我暂不提供全部的异常内容了,如果需要我再补上。 termbox-go没有使用cgo,也没有使用os/user。当然我也没有使用他们。
这个是下载文件的地址,选的是windows 。 http://gobuild.io/download/github.com/wangwenbin/2048-go linux的正常工作,osx的没有测试。 出错会在游戏2048失败或者成功的时候。我不知道为什么,可能也就是输出“Win”或者“Lose”的时候。
这个bug也可能是我的代码的原因,但是目前我还没有找到问题。我如果找到更简单重现bug的代码,我会补上。