OCRA 无法将 ruby 转换为 exe
OCRA cant convert ruby to exe
代码执行完美,但是,处理这个简单的代码需要很长时间
require 'watir'
browser = Watir::Browser.new :firefox
browser.goto "https://google.com"
这是 OCRA 进程的命令行日志,我不得不通过 CTRL+C 退出代码,因为我离开它一个小时但没有产生任何结果。有什么想法吗?
=== Loading script to check dependencies
=== Attempting to trigger autoload of Gem::ConfigFile
=== Attempting to trigger autoload of Gem::DependencyList
=== Attempting to trigger autoload of Gem::DependencyResolver
=== Attempting to trigger autoload of Gem::Installer
=== Attempting to trigger autoload of Gem::Licenses
=== Attempting to trigger autoload of Gem::Source
=== Attempting to trigger autoload of Gem::RequestSet
=== Attempting to trigger autoload of Gem::SpecFetcher
=== Attempting to trigger autoload of Gem::SourceList
=== Attempting to trigger autoload of RubyInstaller::Runtime::Components::Base
=== WARNING: RubyInstaller::Runtime::Components::Base was defined autoloadable,
but caused NameError
=== Attempting to trigger autoload of RubyInstaller::Runtime::Colors
=== Attempting to trigger autoload of RubyInstaller::Runtime::ComponentsInstalle
r
=== Attempting to trigger autoload of RubyInstaller::Runtime::Ridk
=== Attempting to trigger autoload of RubyInstaller::Runtime::PACKAGE_VERSION
=== Attempting to trigger autoload of Selenium::WebDriver::Chrome
=== Attempting to trigger autoload of Selenium::WebDriver::Edge
=== Attempting to trigger autoload of Selenium::WebDriver::IE
=== Attempting to trigger autoload of Selenium::WebDriver::PhantomJS
=== WARNING: Selenium::WebDriver::PhantomJS was not loadable
=== Attempting to trigger autoload of Selenium::WebDriver::Safari
=== Attempting to trigger autoload of Selenium::WebDriver::Support
=== Attempting to trigger autoload of CGI::HtmlExtension
=== Detected gem did_you_mean-1.1.0 (loaded, files)
=== 14 files, 32780 bytes
=== Detected gem ocra-1.3.10 (loaded, files)
=== 5 files, 210830 bytes
=== Detected gem rubyzip-1.2.1 (loaded, files)
=== 36 files, 92674 bytes
=== Detected gem ffi-1.9.25-x64-mingw32 (loaded, files)
=== 70 files, 1785972 bytes
=== Detected gem childprocess-0.9.0 (loaded, files)
=== 19 files, 43107 bytes
=== Detected gem selenium-webdriver-3.13.0 (loaded, files)
=== 120 files, 1191026 bytes
=== Detected gem watir-6.11.0 (loaded, files)
=== 97 files, 280749 bytes
=== Detected gem json-2.1.0 (loaded, files)
=== 37 files, 1721174 bytes
=== Detected gem openssl-2.0.7 (loaded, files)
=== WARNING: Gem openssl-2.0.7 root folder was not found, skipping
=== Detected gem psych-2.2.2 (loaded, files)
=== WARNING: Gem psych-2.2.2 root folder was not found, skipping
=== Detected gem watir-scroll-0.4.0 (loaded, files)
=== 9 files, 4494 bytes
=== Detected gem io-console-0.4.6 (loaded, files)
=== WARNING: Gem io-console-0.4.6 root folder was not found, skipping
=== Detected gem rake-12.0.0 (loaded, files)
=== 43 files, 111973 bytes
=== Including 59 encoding support files (3909616 bytes, use --no-enc to exclude)
您使用的 ruby 版本是什么?我用 2.3.3 和你需要的 gem 尝试了你的代码,但我遇到了一些错误..
对于 OCRA,您可以在构建 exe 时尝试这些参数:
ocra script.rb --no-autoload --add-all-core
如果它是一个窗口应用程序,试试这个:
ocra script.rb --no-autoload --add-all-core --windows C:\Ruby23-x64\lib\tcltk\
--add-all-core
=> 添加所有核心 ruby 库到可执行文件。
--no-autoload
=> 不要 load/include script.rb 的自动加载。
--windows <path-to-gui-folder>
=> 强制 Windows 应用程序 (rubyw.exe)
如果它在没有 --add-all-core
的情况下工作,请不要添加它,这样您的 exe 会更轻..
希望对您有所帮助!
来自 OCRA git page:
如果您需要 'require' 来自与主脚本相同目录的其他源文件,请在脚本开头使用 $:.unshift File.dirname([=16=])
。
如果您需要将文件添加到 exe,您可以像这样在命令行末尾添加它们:
ocra script.rb --no-autoload --add-all-core src/**/* files/boo.txt
代码执行完美,但是,处理这个简单的代码需要很长时间
require 'watir'
browser = Watir::Browser.new :firefox
browser.goto "https://google.com"
这是 OCRA 进程的命令行日志,我不得不通过 CTRL+C 退出代码,因为我离开它一个小时但没有产生任何结果。有什么想法吗?
=== Loading script to check dependencies
=== Attempting to trigger autoload of Gem::ConfigFile
=== Attempting to trigger autoload of Gem::DependencyList
=== Attempting to trigger autoload of Gem::DependencyResolver
=== Attempting to trigger autoload of Gem::Installer
=== Attempting to trigger autoload of Gem::Licenses
=== Attempting to trigger autoload of Gem::Source
=== Attempting to trigger autoload of Gem::RequestSet
=== Attempting to trigger autoload of Gem::SpecFetcher
=== Attempting to trigger autoload of Gem::SourceList
=== Attempting to trigger autoload of RubyInstaller::Runtime::Components::Base
=== WARNING: RubyInstaller::Runtime::Components::Base was defined autoloadable,
but caused NameError
=== Attempting to trigger autoload of RubyInstaller::Runtime::Colors
=== Attempting to trigger autoload of RubyInstaller::Runtime::ComponentsInstalle
r
=== Attempting to trigger autoload of RubyInstaller::Runtime::Ridk
=== Attempting to trigger autoload of RubyInstaller::Runtime::PACKAGE_VERSION
=== Attempting to trigger autoload of Selenium::WebDriver::Chrome
=== Attempting to trigger autoload of Selenium::WebDriver::Edge
=== Attempting to trigger autoload of Selenium::WebDriver::IE
=== Attempting to trigger autoload of Selenium::WebDriver::PhantomJS
=== WARNING: Selenium::WebDriver::PhantomJS was not loadable
=== Attempting to trigger autoload of Selenium::WebDriver::Safari
=== Attempting to trigger autoload of Selenium::WebDriver::Support
=== Attempting to trigger autoload of CGI::HtmlExtension
=== Detected gem did_you_mean-1.1.0 (loaded, files)
=== 14 files, 32780 bytes
=== Detected gem ocra-1.3.10 (loaded, files)
=== 5 files, 210830 bytes
=== Detected gem rubyzip-1.2.1 (loaded, files)
=== 36 files, 92674 bytes
=== Detected gem ffi-1.9.25-x64-mingw32 (loaded, files)
=== 70 files, 1785972 bytes
=== Detected gem childprocess-0.9.0 (loaded, files)
=== 19 files, 43107 bytes
=== Detected gem selenium-webdriver-3.13.0 (loaded, files)
=== 120 files, 1191026 bytes
=== Detected gem watir-6.11.0 (loaded, files)
=== 97 files, 280749 bytes
=== Detected gem json-2.1.0 (loaded, files)
=== 37 files, 1721174 bytes
=== Detected gem openssl-2.0.7 (loaded, files)
=== WARNING: Gem openssl-2.0.7 root folder was not found, skipping
=== Detected gem psych-2.2.2 (loaded, files)
=== WARNING: Gem psych-2.2.2 root folder was not found, skipping
=== Detected gem watir-scroll-0.4.0 (loaded, files)
=== 9 files, 4494 bytes
=== Detected gem io-console-0.4.6 (loaded, files)
=== WARNING: Gem io-console-0.4.6 root folder was not found, skipping
=== Detected gem rake-12.0.0 (loaded, files)
=== 43 files, 111973 bytes
=== Including 59 encoding support files (3909616 bytes, use --no-enc to exclude)
您使用的 ruby 版本是什么?我用 2.3.3 和你需要的 gem 尝试了你的代码,但我遇到了一些错误..
对于 OCRA,您可以在构建 exe 时尝试这些参数:
ocra script.rb --no-autoload --add-all-core
如果它是一个窗口应用程序,试试这个:
ocra script.rb --no-autoload --add-all-core --windows C:\Ruby23-x64\lib\tcltk\
--add-all-core
=> 添加所有核心 ruby 库到可执行文件。
--no-autoload
=> 不要 load/include script.rb 的自动加载。
--windows <path-to-gui-folder>
=> 强制 Windows 应用程序 (rubyw.exe)
如果它在没有 --add-all-core
的情况下工作,请不要添加它,这样您的 exe 会更轻..
希望对您有所帮助!
来自 OCRA git page:
如果您需要 'require' 来自与主脚本相同目录的其他源文件,请在脚本开头使用 $:.unshift File.dirname([=16=])
。
如果您需要将文件添加到 exe,您可以像这样在命令行末尾添加它们:
ocra script.rb --no-autoload --add-all-core src/**/* files/boo.txt