On Monday, February 20, 2017 at 11:24:50 AM UTC-8, Shu-Hung You wrote: > Sorry, I saw that you're already using raco exe and raco distribute. > So is the problem related to some DLL issue on Windows? > > Best, > Shu-Hung > > On Mon, Feb 20, 2017 at 1:19 PM, Shu-Hung You > <shu-hung....@eecs.northwestern.edu> wrote: > > https://docs.racket-lang.org/raco/exe.html > > Is raco exe in this page what you want? Just type > > > >> raco exe q.rkt > > > > And this command will produce a single executable. Now we can now run > > > >> ./q > > q: expects 1 <msg> on the command line, given 0 arguments > > > > Best, > > Shu-Hung > > > > On Mon, Feb 20, 2017 at 1:12 PM, lu <luke...@gmail.com> wrote: > >> Hi all, I have this little toy project[1] to help me learn the language. I > >> would like to produce a single portable executable that can be executed > >> without reliance on racket installation. `raco distribute` does produce a > >> "package" folder. But for small utility tool like this, I would prefer a > >> simple standalone executable file rather than a folder, so I can just drop > >> it into a directory on `PATH` on the target machine and run it. > >> > >> For the start I'm looking at solving this problem for Windows > >> specifically, but am also interested in a solution on other systems. > >> > >> Thanks! > >> > >> > >> [1]: https://github.com/kflu/q > >> > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Racket Users" group. > >> To unsubscribe from this group and stop receiving emails from it, send an > >> email to racket-users+unsubscr...@googlegroups.com. > >> For more options, visit https://groups.google.com/d/optout.
No, there's nothing wrong with DLL issue on Windows specifically. It's the way how `raco exe` is designed to work. The executable produced with `raco exe` is not portable to another machine of the same OS without Racket installed. More specifically, if you look at the distribution `raco distribute` produce, it includes essential dependencies for running the application, e.g., the GC lib `libracket3m_a1zjsw.dll`. If you run the executable from another machine where Racket isn't installed, you get (at least) an error saying that `libracket3m_a1zjsw.dll` cannot be found. In fact, I'm wondering if `raco distribute` or `raco exe` is flexible enough to produce a statically linked executable where all the necessary dlls are incorporated. C:\USERS\LU\WORK\RACK\Q | q.exe | \---lib | libiconv-2.dll | libracket3m_a1zjsw.dll | longdouble.dll | \---plt \---q +---collects \---exts \---ert +---r0 | dh4096.pem | \---r1 libeay32.dll ssleay32.dll -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.