Ruby可执行文件不会在Win10和Win7上启动

我用Tk写了一个ruby应用程序,一切都很好,没有错误等等。 所以我用Ocra制作了一个exe,我在开始时遇到了一些问题,但后来我解决了,Ocra没有错误地制作了exe,而且当它让你在编写它之前尝试你的脚本时,没有任何问题。

但是当我双击exe时,什么都没有。 我等了,什么都没有..以管理员的身份运行它,再也没有了……

我也尝试编写一个简单的脚本,就像一个hello world,但总是同样的问题:

屏幕上或cmd中没有出现错误,但是当我使用TK运行Ocra ruby​​可执行文件时仍然没有任何反应

这是ocra输出:

G:\WinRuby\efdsk>ocra efdsk.rb --windows --no-autoload --debug === Loading script to check dependencies === Detected gem did_you_mean-1.2.0 (loaded, files) === 19 files, 38722 bytes === Detected gem ocra-1.3.10 (loaded, files) === 5 files, 210830 bytes === Detected gem tk-0.2.0 (loaded, files) === 419 files, 4623427 bytes === Including 59 encoding support files (3909616 bytes, use --no-enc to exclude) === Building efdsk-debug.exe === Enabling debug mode in executable === Adding user-supplied source files === Adding ruby executable rubyw.exe === Adding detected DLL C:/Ruby25-x64/bin/ruby_builtin_dlls/libgmp-10.dll === Adding detected DLL C:/Ruby25-x64/bin/ruby_builtin_dlls/libffi-6.dll === Adding detected DLL C:/Ruby25-x64/msys64/mingw64/bin/tcl86.dll === Adding detected DLL C:/Ruby25-x64/msys64/mingw64/bin/tk86.dll === Adding detected DLL C:/Ruby25-x64/bin/ruby_builtin_dlls/zlib1.dll === Adding detected DLL C:/Ruby25-x64/msys64/mingw64/lib/reg1.3/tclreg13.dll === Adding external manifest C:/Ruby25- x64/bin/ruby_builtin_dlls/ruby_builtin_dlls.manifest === Adding library files === Compressing 16872997 bytes LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03 === Finished building efdsk-debug.exe (4029675 bytes) 

这是我尝试启动exe文件时的输出

 G:\WinRuby\efdsk>start efdsk.exe G:\WinRuby\efdsk> 

这样一个简单的脚本也无法启动:

 require 'tk' require 'tkextlib/tile' root = TkRoot.new() button = Tk::Tile::TButton.new(root) {text "Hello World"}.grid Tk.mainloop() 

我的ruby版本:

 ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32] 

我通过安装这个ruby版本解决了:

 G:\WinRuby\efdsk>ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32] 

这是我用于ocra的命令:

 ocra efdsk.rb --windows C:\Ruby23-x64\lib\tcltk\ --no-autoload --add-all-core 

现在exe文件双击后会正常运行。