【问题标题】:Ruby executable won't start on Win10 and Win7Ruby 可执行文件不会在 Win10 和 Win7 上启动
【发布时间】:2018-10-15 06:31:15
【问题描述】:

我用 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 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]

【问题讨论】:

  • 这归结为“不工作”,这不是一个足够的技术诊断。它会产生任何输出吗? Ruby 源代码版本仍然有效吗?你能用 Ocra 重建它吗?
  • 如果我从 .rb 文件运行脚本,它运行良好。当我用 ocra 构建它时,它也可以正常工作。问题是当我双击它时,exe文件不会启动,不是作为普通用户,也不是作为管理员。同样,没有从 ocra 或 windows 显示错误,当我双击它时它不会启动。我在 Windows 10 和 Windows 7 上试过。
  • 除非您可以向我们展示一个我们可以试验和重现问题的最小非工作示例,否则您将不得不自己做更多的诊断工作。当我们无权访问时,很难说为什么您的代码不能在您的计算机上运行。
  • 我在 3 台计算机上尝试过,但一个简单的带有 TK 的 hello world 程序也无法运行。我可以制作视频并以某种方式将其链接到此处,或者链接我的脚本
  • @tadman 我添加了一些信息,但在我看来一切正常。但它无法运行。我应该尝试另一个 ruby​​ 版本吗?

标签: ruby windows-7 windows-10 tk ocra


【解决方案1】:

我通过安装这个 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文件双击后就可以正常运行了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2018-08-06
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多