You don't need any magic. Simply run configure --disable-shared --enable-static
But you will need to provide required libraries. You will need about 12-15 additional .dlls or .a files. That's the reason why W32 binary is not distributed with TLS. -- Best Wishes, Evgeny Grin On 15.06.2016 19:12, Weber, Peter (Wilken Software Engineering GmbH) wrote: > Hello and big thanks at Silvio and Evgeny! > It worked and I can compile the library dynamically and link it! At > first I was bewildered by MSYS2, especially because I'm using Archlinux > (pacman) since years. My beloved package-manager was ported to Windows > *envy*. I'm now able to compile my program and link it dynamically. > > One last problem remains: > I'm trying to compile libmicrohttpd statically or at least the final > executable, but this fails. My LDFLAG="-static" seems to be ignored. > Therefore I compile the final program with "-static", which required me > to care much about the libraries: > > >> $ g++ -static -static-libstdc++ -o foo foo.cpp -Llib -lmicrohttpd -Iinclude >> -Wall -Wpedantic -std=gnu++11 -lws2_32 -lgnutls -lidn -lgcrypt -lffi >> -lgpg-error -lhogweed -lgmp -lintl -liconv -lnettle -ltasn1 -lwinpthread -lz > > These gives me still a lot of "undefinfed reference errors", especially > about "system.o", "system-keys-win.o" and "pkcs11.o". So I tried to add > "-lp11-kit" behind "-lgnutls" but it doesn't change anything. And > "system.o" and "system-keys-win.o" doesn't give me a hint, so stuff > from Windows or internals of GNUTLS? > > See here: http://pastebin.com/TYNQ289E > > Do you think I should try to hand over the required libraries to my > users also? I'm perfectly fine with this, but it sounds a little bit > clumsy. > > Thanks > Peter > > > > For future readers, here my steps for WIN_X86_64: > 1. Install > http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20160205.exe > 2. Launch msys2_shell.cmd > 3.1 Optional if behind proxy: > $ export http_proxy=... > $ export https_proxy=... > 3.2 $ pacman -S mingw-w64-x86_64-toolchain make wget tar # general stuff > $ pacman -S mingw-w64-x86_64-curl mingw-w64-x86_64-libgcrypt > mingw-w64-x86_64-gnutls # for libmicrohttpd > 4. Close the terminal > 5. Launch msys2_shell.cmd -mingw64 # important! > 6. $ wget -c > http://ftpmirror.gnu.org/libmicrohttpd/libmicrohttpd-0.9.50.tar.gz > $ tar -xzvf libmicrohttpd-0.9.50.tar.gz libmicrohttpd-0.9.50/ > $ mkdir build && cd build > $ LDFLAG="-static" CFLAGS='-Os -s' ../libmicrohttpd-0.9.50/configure > or > $ CFLAGS='-Os -s' ../libmicrohttpd-0.9.50/configure > $ make > You will find the resulting library now here "build\src\microhttpd\.libs\". > > > > Example for compiling a final program and linking: > 1. Launch msys2_shell.cmd -mingw64 # important! > 2. $ g++ -o foo.exe foo.cpp -Llib -lmicrohttpd -Iinclude -Wall -Wpedantic > -std=gnu++11 -lws2_32 -lgnutls -lgcrypt > > > > @LRN: I' sorry, but libmicrohttpd seems not to be included in the packages >
signature.asc
Description: OpenPGP digital signature
