On Saturday, 29 August 2020 at 11:27:28 UTC, Kirill wrote:
I need a stand-alone executable that does not require the user
to install any libraries on their computer. Everything should
be packed into the executable.
I understand that I need to statically link all of the
libraries I use in my project, but how do I do this? What do I
need to add to dub.json file? What compiler flags do I need to
use?
Thanks in advance.
It may be extremely difficult if you intend to also link libc;
the gethostbyname DNS functions in glibc do not support static
linking.
OTOH you can create a fairly portably binary by static linking
everything EXCEPT libc (I.e., do not pass -static flag to linker)
— here you would need to link to the .a files of all your
projects library deps as well as your dependencies dependencies...