ruby-packer
ruby-packer copied to clipboard
Windows10 zlib.h not found
Hi, thanks for ruby-packer. Great work!
I tried to compile a "hello World".
zlib.h was not found.
c:\temp> c:\temp>rubyc --v 2.7.1.dev
c:\temp>ruby -v ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]
=> squashfs complete -> cd c:/temp => Building ruby for the 1st pass -> cd C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/build_pass1 -> CI=true ENCLOSE_IO_USE_ORIGINAL_RUBY=true MAKE=nmake CL=/MP ENCLOSE_IO_RUBYC_1ST_PASS=true ENCLOSE_IO_RUBYC_2ND_PASS='' rc enclose_io_memfs.rc Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384 Copyright (C) Microsoft Corporation. All rights reserved.
-> CI=true ENCLOSE_IO_USE_ORIGINAL_RUBY=true MAKE=nmake CL=/MP ENCLOSE_IO_RUBYC_1ST_PASS=true ENCLOSE_IO_RUBYC_2ND_PASS='' call C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev\win32\configure.bat --target=x64-mswin64 --disable-install-doc --with-openssl-dir=C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/local --prefix=C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby_install Creating verconf.mk Creating Makefile.new "type `nmake' to make ruby." -> CI=true ENCLOSE_IO_USE_ORIGINAL_RUBY=true MAKE=nmake CL=/MP ENCLOSE_IO_RUBYC_1ST_PASS=true ENCLOSE_IO_RUBYC_2ND_PASS='' nmake
Microsoft (R) Program Maintenance Utility, Version 14.28.29335.0 Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
BASERUBY = C:\RUBY27~1\bin\ruby.exe
CC = cl -nologo
LD = cl -nologo
LDSHARED = cl -nologo -LD
CFLAGS = -MD -Zi -W2 -wd4100 -wd4127 -wd4210 -wd4214 -wd4255 -wd4574 -wd4668 -wd4710 -wd4711 -wd4820 -wd4996 -we4028 -we4142 -we4047 -O2sy- -Zm600 -MD /Ox -IC:/Users/CHRIST\~1/AppData/Local/Temp/rubyc/zlib -IC:/Users/CHRIST\~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev
XCFLAGS = -DRUBY_EXPORT -I. -I.ext/include/x64-mswin64_140 -IC:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/include -IC:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev -IC:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/enc/unicode/12.1.0 -MD /Ox -IC:/Users/CHRIST\~1/AppData/Local/Temp/rubyc/zlib -IC:/Users/CHRIST\~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev -DCANONICALIZATION_FOR_MATHN
CPPFLAGS = -D_WIN32_WINNT=0x0600
DLDFLAGS = -incremental:no -debug -opt:ref -opt:icf -libpath:C:\\Users\\CHRIST\~1\\AppData\\Local\\Temp\\rubyc\\zlib C:/Users/CHRIST\~1/AppData/Local/Temp/rubyc/zlib/zlib.lib Advapi32.lib -dll
SOLIBS =
LANG =
LC_ALL =
LC_CTYPE =
MFLAGS = -l
Creating config.h .ext\include\x64-mswin64_140\ruby\config.h updated Creating config.status compiling C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/main.c main.c C:\Users\CHRIST~1\AppData\Local\Temp\rubyc\build_pass1.ext\include\x64-mswin64_140\ruby/config.h(22): warning C4117: Makroname "_INTEGRAL_MAX_BITS" ist reserviert, "#define" wird ignoriert C:\Users\christiankasper\AppData\Local\Temp\rubyc\ruby-2.7.1.dev\enclose_io_win32.h(24): warning C4005: "stat": Makro-Neudefinition C:\Users\christiankasper\AppData\Local\Temp\rubyc\ruby-2.7.1.dev\include\ruby/win32.h(196): note: Siehe vorherige Definition von "stat" C:\Users\christiankasper\AppData\Local\Temp\rubyc\ruby-2.7.1.dev\enclose_io_win32.h(25): warning C4005: "fstat": Makro-Neudefinition C:\Users\christiankasper\AppData\Local\Temp\rubyc\ruby-2.7.1.dev\include\ruby/win32.h(203): note: Siehe vorherige Definition von "fstat" compiling C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/dmydln.c dmydln.c C:\Users\CHRIST~1\AppData\Local\Temp\rubyc\build_pass1.ext\include\x64-mswin64_140\ruby/config.h(22): warning C4117: Makroname "_INTEGRAL_MAX_BITS" ist reserviert, "#define" wird ignoriert compiling miniruby.rc generating C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/miniprelude.c C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/miniprelude.c updated compiling C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/miniinit.c miniinit.c C:\Users\CHRIST~1\AppData\Local\Temp\rubyc\build_pass1.ext\include\x64-mswin64_140\ruby/config.h(22): warning C4117: Makroname "_INTEGRAL_MAX_BITS" ist reserviert, "#define" wird ignoriert compiling C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/dmyext.c dmyext.c compiling C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/squash_cache.c squash_cache.c compiling C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/squash_decompress.c squash_decompress.c C:/Users/CHRIST~1/AppData/Local/Temp/rubyc/ruby-2.7.1.dev/squash_decompress.c(28): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "zlib.h": No such file or directory NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64\cl.EXE"": Rückgabe-Code "0x2" Stop. Failed running [{"CI"=>"true", "ENCLOSE_IO_USE_ORIGINAL_RUBY"=>"true", "MAKE"=>"nmake", "CL"=>"/MP", "ENCLOSE_IO_RUBYC_1ST_PASS"=>"true", "ENCLOSE_IO_RUBYC_2ND_PASS"=>nil}, "nmake "]
I too am running across this exact issue unfortunately. I am not quite sure, but I noticed at least with my folders, there was a "tilde" listed in the users directory causing problems, I noticed the developer has denoted this as a problem here and had to make a work around for his github actions build by providing a tmpdir argument to his ruby-packer build (which is subsequently being packed into an exe via ruby-packer; isn't bootstrapping fun!?):
https://github.com/pmq20/ruby-packer/issues/113
It looks like the tildes are in your directories as well but got picked up by Github as markdown syntax for crossing stuff out, so I'm assuming this tilde thing is causing both of our problems. I will report back with my findings
Turns out that fixed it for me, so add the following to your rubyc command (the folder can be anything you want technically, pending Windows permissions and path interpreting weirdness of course):
rubyc --tmpdir C:\rubyc_tmp