larsch / ocra

One-Click Ruby Application Builder
http://ocra.rubyforge.org/
835 stars 83 forks source link

Executable builds successfully without errors, but it fails to start after double click. #183

Closed Vucius closed 1 year ago

Vucius commented 2 years ago
ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) [x64-mingw32]

Ruby file : https://qiita.com/ktat/items/a254441a29c577a3da9f win_test.rb has the same content as sample.rb Command: ocra win_test.rb --windows --no-autoload --add-all-core --gem-all=gemname --dll ruby_builtin_dlls/libssp-0.dll --dll ruby_builtin_dlls/libgmp-10.dll And get the response:

LZMA 19.00 (x86) : Igor Pavlov : Public domain : 2019-02-21

Input size:  27485067 (26 MiB)
Output size: 4661041 (4 MiB)
=== Loading script to check dependencies
Close window
=== Detected gem did_you_mean-1.6.1 (loaded, files)
===     26 files, 34872 bytes
=== Detected gem ocra-1.3.11 (loaded, files)
===     5 files, 271800 bytes
=== Detected gem libui-0.0.15 (loaded, files)
===     12 files, 1895034 bytes
=== Detected gem fiddle-1.1.0 (loaded, files)
===     13 files, 196884 bytes
=== Including 61 encoding support files (3660288 bytes, use --no-enc to exclude)
=== Will include all ruby core libraries
=== Building win_test.exe
=== Adding user-supplied source files
=== Adding ruby executable rubyw.exe
=== Adding external manifest X:/Ruby/Ruby30-x64/bin/ruby_builtin_dlls/ruby_builtin_dlls.manifest
=== Adding supplied DLL ruby_builtin_dlls/libssp-0.dll
=== Adding supplied DLL ruby_builtin_dlls/libgmp-10.dll
=== Adding library files
=== Compressing 27485067 bytes
=== Finished building win_test.exe (4710213 bytes)

But,When I double-click the Exectable,it won't srart. I don't know why

Vucius commented 2 years ago

Command: ./win_test.exe and get the error:

<internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': 126: ▒Ҳ▒▒▒ָ▒▒▒▒ģ▒顣   - C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/3.0.0/x64-mingw32/fiddle.so (LoadError)
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/3.0.0/fiddle.rb:3:in `<top (required)>'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/3.0.0/fiddle/import.rb:2:in `<top (required)>'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/gems/3.0.0/gems/libui-0.0.15/lib/libui/ffi.rb:1:in `<top (required)>'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/gems/3.0.0/gems/libui-0.0.15/lib/libui.rb:20:in `require_relative'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/gems/3.0.0/gems/libui-0.0.15/lib/libui.rb:20:in `<module:LibUI>'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/gems/3.0.0/gems/libui-0.0.15/lib/libui.rb:5:in `<top (required)>'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in `require'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in `rescue in require'
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:149:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/src/win_test.rb:3:in `<main>'
<internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- libui (LoadError)
        from <internal:C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr5383.tmp/src/win_test.rb:3:in `<main>'

I also did

ocra win_test.rb --windows --dll ruby_builtin_dlls/libssp-0.dll --dll ruby_builtin_dlls/libgmp-10.dll --dll ruby_builtin_dlls/libgcc_s_seh-1.dll --dll ruby_builtin_dlls/libwinpthread-1.dll

and

 ocra win_test.rb --windows --dll ruby_builtin_dlls/libssp-0.dll --dll ruby_builtin_dlls/libgmp-10.dll --dll ruby_builtin_dlls/libgcc_s_seh-1.dll --dll ruby_builtin_dlls/libwinpthread-1.dll --gem-full=fiddle

But still get the same error after I typing ./win_test.exe

Vucius commented 2 years ago

I think I had solve the fiddle.soproblem After Reading @Largo 's comment I add -dll ruby_builtin_dlls/libffi-7.dll to Command and it works.


Sadly I met the same type problem on another rb,it's mysql2.so. And I couldn't solve it,Even I used --gem-full=mysql2

Vucius commented 2 years ago

Ocra Command

ocra form.rb --windows --dll ruby_builtin_dlls/libgmp-10.dll --dll ruby_builtin_dlls/libffi-7.dll --dll ruby_builtin_dlls/libssp-0.dll --dll ruby_builtin_dlls/libssl-1_1-x64.dll --dll ruby_builtin_dlls/libcrypto-1_1-x64.dll --dll ruby_builtin_dlls/libgcc_s_seh-1.dll --dll ruby_builtin_dlls/libgdbm_compat-4.dll --dll ruby_builtin_dlls/libgdbm-6.dll --dll ruby_builtin_dlls/libiconv-2.dll --dll ruby_builtin_dlls/libwinpthread-1.dll

information

LZMA 19.00 (x86) : Igor Pavlov : Public domain : 2019-02-21

Input size:  36947765 (35 MiB)
Output size: 6544246 (6 MiB)
=== Loading script to check dependencies
Bye Bye
=== Attempting to trigger autoload of HTTP::CookieJar
=== Attempting to trigger autoload of HTTP::Cookie::Scanner
=== Attempting to trigger autoload of CGI::HtmlExtension
=== Attempting to trigger autoload of UNF::Normalizer
=== Detected gem did_you_mean-1.3.0 (loaded, files)
===     19 files, 20063 bytes
=== Detected gem ocra-1.3.11 (loaded, files)
===     5 files, 271800 bytes
=== Detected gem libui-0.0.15 (loaded, files)
===     12 files, 1895034 bytes
=== Detected gem fiddle-1.0.0 (loaded, files)
=== WARNING: Gem fiddle-1.0.0 root folder was not found, skipping
=== Detected gem zlib-1.0.0 (loaded, files)
=== WARNING: Gem zlib-1.0.0 root folder was not found, skipping
=== Detected gem stringio-0.0.2 (loaded, files)
=== WARNING: Gem stringio-0.0.2 root folder was not found, skipping
=== Detected gem racc-1.6.0 (loaded, files)
===     8 files, 76923 bytes
=== Detected gem nokogiri-1.13.4-x64-mingw32 (loaded, files)
===     82 files, 12275835 bytes
=== Detected gem strscan-1.0.0 (loaded, files)
=== WARNING: Gem strscan-1.0.0 root folder was not found, skipping
=== Detected gem http-accept-1.7.0 (loaded, files)
===     16 files, 24519 bytes
=== Detected gem unf_ext-0.0.8.1-x64-mingw32 (loaded, files)
===     12 files, 3227347 bytes
=== Detected gem unf-0.1.4 (loaded, files)
===     8 files, 3453 bytes
=== Detected gem domain_name-0.5.20190701 (loaded, files)
===     11 files, 444834 bytes
=== Detected gem http-cookie-1.0.4 (loaded, files)
===     10 files, 38839 bytes
=== Detected gem mime-types-data-3.2022.0105 (loaded, files)
===     28 files, 1403504 bytes
=== Detected gem mime-types-3.4.1 (loaded, files)
===     12 files, 51449 bytes
=== Detected gem netrc-0.11.0 (loaded, files)
===     10 files, 6723 bytes
=== Detected gem ffi-1.15.5-x64-mingw32 (loaded, files)
===     84 files, 1156568 bytes
=== Detected gem rest-client-2.1.0-x64-mingw32 (loaded, files)
===     27 files, 95372 bytes
=== Detected gem ipaddr-1.2.2 (loaded, files)
=== WARNING: Gem ipaddr-1.2.2 root folder was not found, skipping
=== Detected gem openssl-2.1.2 (loaded, files)
=== WARNING: Gem openssl-2.1.2 root folder was not found, skipping
=== Detected gem fileutils-1.1.0 (loaded, files)
=== WARNING: Gem fileutils-1.1.0 root folder was not found, skipping
=== Detected gem etc-1.0.1 (loaded, files)
=== WARNING: Gem etc-1.0.1 root folder was not found, skipping
=== Detected gem forwardable-1.2.0 (loaded, files)
=== WARNING: Gem forwardable-1.2.0 root folder was not found, skipping
=== Detected gem logger-1.3.0 (loaded, files)
=== WARNING: Gem logger-1.3.0 root folder was not found, skipping
=== Detected gem date-2.0.3 (loaded, files)
=== WARNING: Gem date-2.0.3 root folder was not found, skipping
=== Detected gem json-2.1.0 (loaded, files)
=== WARNING: Gem json-2.1.0 root folder was not found, skipping
=== Detected gem ostruct-0.1.0 (loaded, files)
=== WARNING: Gem ostruct-0.1.0 root folder was not found, skipping
=== Detected gem mysql2-0.5.3 (loaded, files)
===     12 files, 257690 bytes
=== Detected gem bigdecimal-1.4.1 (loaded, files)
=== WARNING: Gem bigdecimal-1.4.1 root folder was not found, skipping
=== Including 59 encoding support files (3625984 bytes, use --no-enc to exclude)
=== Building form.exe
=== Adding user-supplied source files
=== Adding ruby executable rubyw.exe
=== Adding external manifest X:/Ruby/Ruby26-x64/bin/ruby_builtin_dlls/ruby_builtin_dlls.manifest
=== Adding supplied DLL ruby_builtin_dlls/libgmp-10.dll
=== Adding supplied DLL ruby_builtin_dlls/libffi-7.dll
=== Adding supplied DLL ruby_builtin_dlls/libssp-0.dll
=== Adding supplied DLL ruby_builtin_dlls/libssl-1_1-x64.dll
=== Adding supplied DLL ruby_builtin_dlls/libcrypto-1_1-x64.dll
=== Adding supplied DLL ruby_builtin_dlls/libgcc_s_seh-1.dll
=== Adding supplied DLL ruby_builtin_dlls/libgdbm_compat-4.dll
=== Adding supplied DLL ruby_builtin_dlls/libgdbm-6.dll
=== Adding supplied DLL ruby_builtin_dlls/libiconv-2.dll
=== Adding supplied DLL ruby_builtin_dlls/libwinpthread-1.dll
=== Adding library files
=== Compressing 36947765 bytes
=== Finished building form.exe (6593418 bytes)

Run the executable

./form.exe

get the error

C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': 126: ▒Ҳ▒▒▒ָ▒▒▒▒ģ▒顣   - C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:in `<top (required)>'
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in `rescue in require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/src/form.rb:9:in `<main>'
C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- mysql2 (LoadError)
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from C:/Users/Vucius/AppData/Local/Temp/ocr3CA2.tmp/src/form.rb:9:in `<main>'
parmis7 commented 1 year ago

i have the same problem with glib2.so

<internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in require': 126: The specified module could not be found. - C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/glib2-4.0.8/lib/glib2.so (LoadError) from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:inrequire' from C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/glib2-4.0.8/lib/glib2.rb:117:in <top (required)>' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:inrequire' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in require' from C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/gobject-introspection-4.0.8/lib/gobject-introspection.rb:17:in<top (required)>' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in require' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:inrequire' from C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/atk-4.0.8/lib/atk.rb:17:in <top (required)>' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:inrequire' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in require' from C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/gtk3-4.0.8/lib/gtk3.rb:17:in<top (required)>' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:160:in require' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:160:inrescue in require' from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:149:in require' from C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/src/p7.rb:1:in

' <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in require': cannot load such file -- gtk3 (LoadError) from <internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:inrequire' from C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/src/p7.rb:1:in `
'

Largo commented 1 year ago

i have the same problem with glib2.so

<internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': 126: The specified module could not be found. - C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/glib2-4.0.8/lib/glib2.so (LoadError)

It's not adding that DLL automatically. You can do that manually with a commandline param. I'll need to look up the filename. Theres an Ocra2 gem with the fix, but they haven't published their code, considering the gem comes with binaries (they seem safe in current version) and the author seems respectable it might be ok.

@larsch Would you be willing to give maintainer rights for this gem or would you prefer a fork? I have fixes in the pipeline (fixing dlls, innosetup, faster gem loading). I would also like to add gem building by github actions for safety.

Vucius commented 1 year ago

i have the same problem with glib2.so internal:C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb:85:in `require': 126: The specified module could not be found. - C:/Users/Eniak/AppData/Local/Temp/ocr9C34.tmp/lib/ruby/gems/3.1.0/gems/glib2-4.0.8/lib/glib2.so (LoadError)

It's not adding that DLL automatically. You can do that manually with a commandline param. I'll need to look up the filename. Theres an Ocra2 gem with the fix, but they haven't published their code, considering the gem comes with binaries (they seem safe in current version) and the author seems respectable it might be ok.

@larsch Would you be willing to give maintainer rights for this gem or would you prefer a fork? I have fixes in the pipeline (fixing dlls, innosetup, faster gem loading). I would also like to add gem building by github actions for safety.

Although 'DLL' is added manually, 'Ocra' would still 'LoadError' on the higher version of 'Ruby'. I found that 'Ocra' can works on 'Ruby-2.6.5', provided that no wrong command has been run before. Hope those information is helpful for u. Good luck, sir

louckazdenekjr commented 1 year ago

I am successfully building and launching executables on Windows 10 Enterprise using Ruby version 3.1.3p185 after adding following DLL files:

--dll ruby_builtin_dlls/libssl-1_1-x64.dll --dll ruby_builtin_dlls/zlib1.dll --dll ruby_builtin_dlls/libgmp-10.dll

This should be included in Ocra by default. This issue does not come up while using Ruby version 2.6.3.1. Is this going to be implemented or is there a fork that I can follow?

In my case other gems have to be added on top since I am using the --no-dep-run option. This works too after creating a gemfile and providing the gemfile and paths to the libraries via command line options.

Regards, Zdenek

Toma400 commented 1 year ago

Same thing happening with my Yamlomiser software.

Running the program through ruby randomiser.rb works perfectly, but for some reason double-clicking on executable runs it and closes immediately. I solved previous issue with missing .dll file (exactly the one @louckazdenekjr mentioned), so it's no longer an issue, and I have no way to prevent crash by begin - rescue, because it crashes before anything in script is run.

Vucius commented 1 year ago

Same thing happening with my Yamlomiser software.

Running the program through ruby randomiser.rb works perfectly, but for some reason double-clicking on executable runs it and closes immediately. I solved previous issue with missing .dll file (exactly the one @louckazdenekjr mentioned), so it's no longer an issue, and I have no way to prevent crash by begin - rescue, because it crashes before anything in script is run.

Based on my personal experience, I have come to some conclusions:

When using Ocra to package the code, it is recommended to use Ruby version 2.6.5. (If using a higher version of Ruby, more DLL files need to be added, and there may be some difficult-to-resolve errors, such as manually adding 'openssl.so', etc.)

When running the packaged executable file through the command line, errors may occur.

I hope this can help you. Good luck!

tambero14 commented 4 months ago

Hello, could anyone let me know how this issue was finally solved? I'm getting crazy. I've tried everything possible, but I can't either create the .EXE with Ocra or run it.

When I tried ocra Image_Hunter.rb, the executable is created, but it does nothing when clicked it. I tried by adding all the libraries mentioned in this thread, like ocra Image_Hunter.rb --dll c:\Ruby27-x64\bin\ruby_builtin_dlls\libgmp-10.dll --dll c:\Ruby27-x64\bin\ruby_builtin_dlls\libssl-1_1-x64.dll --dll c:\Ruby27-x64\bin\ruby_builtin_dlls\zlib1.dll, but the following issue is risen:

Traceback (most recent call last): 10917: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1231:inblock in <top (required)>' 10916: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:879:in build_exe' 10915: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:879:innew' 10914: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1071:in initialize' 10913: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1071:inopen' 10912: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1087:in block in initialize' 10911: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:936:inblock in build_exe' 10910: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:936:in each' ... 10905 levels... 4: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1172:inensuremkdir' 3: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1172:in ensuremkdir' 2: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:1172:inensuremkdir' 1: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:120:in dirname' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/ocra-1.3.11/bin/ocra:120:innew': stack level too deep (SystemStackError)`

Literally, I don't know what else to do to fix this issue. I'm using Ruby 2.7.8, after having tried with v3.4, v3.3, v3.0..

Largo commented 4 months ago

Literally, I don't know what else to do to fix this issue. I'm using Ruby 2.7.8, after having tried with v3.4, v3.3, v3.0..

Ocra itself is unmaintained. Do you want to try my fork?

tambero14 commented 4 months ago

Thanks @Largo, I didn't know that! I basically solved my issue by adding all dependencies to the command:

ocra Image_Hunter.rb --no-lzma --gem-full --add-all-core --output build\temp\output.exe --dll ruby_builtin_dlls/libgmp-10.dll --dll ruby_builtin_dlls/libffi-8.dll --dll ruby_builtin_dlls/zlib1.dll --dll ruby_builtin_dlls/libiconv-2.dll --dll ruby_builtin_dlls\libssl-1_1-x64.dll --dll ruby_builtin_dlls\libcrypto-1_1-x64.dll --dll ruby_builtin_dlls\libyaml-0-2.dll --dll ruby_builtin_dlls/libwinpthread-1.dll --gem-full=openssl --gem-full=tzinfo-data

Then I had other issues, which I could resolves, like creation of build\temp directories and the path where the .EXE runs the program (fixed it with $LOAD_PATH.unshift File.dirname($0)).

I will sure have a look at your attempt. I wonder what other people are currently doing, since Ocra is unmaintained..