Hello, I am trying to produce an executable using mingw that uses all-static linking, that is, that it does not rely on any DLLs except possibly the Microsoft msvcrt.dll
Is it possible? If I am not mistaken, when selecting the package mingw64-x86_64-zlib with the installer, it installs the library, which has been compiled as both a DLL and a static library. But it appears that the minizip library included within the zlib package is only present in DLL form. When building, I get the following make x86_64-w64-mingw32-g++ -O2 -fno-strength-reduce -O2 -fno-strength-reduce -g -I/usr/x86_64-w64-mingw32/sys-root/mingw/include/ -DDEBUG -D_WIN32 -std=c++11 -c -o main.o main.cpp x86_64-w64-mingw32-g++ -o app.exe -O2 -fno-strength-reduce -g -Wall -Wpointer-arith -L/usr/lib main.o -mwindows -static -lws2_32 -lgdi32 -lcomctl32 -lcomdlg32 -lminizip -lz -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc /usr/lib/gcc/x86_64-w64-mingw32/5.4.0/../../../../x86_64-w64-mingw32/bin/ld: cannot find -lminizip collect2: error: ld returned 1 exit status But yet, when I build the with the exact same command on linux, I get an executable and it depends only on msvcrt.dll (and comctl32.dll, comdlg32.dll, kernel32.dll, user32.dll and ws2_32.dll, obviously). If I modify the link line to instead link -lminizip.dll, I get the following errors /usr/lib/libpthread.a(t-d001060.o):fake:(.text+0x2): undefined reference to `__imp_pthread_getspecific' /usr/lib/libpthread.a(t-d001062.o):fake:(.text+0x2): undefined reference to `__imp_pthread_key_create' /usr/lib/libpthread.a(t-d001063.o):fake:(.text+0x2): undefined reference to `__imp_pthread_key_delete' /usr/lib/libpthread.a(t-d001065.o):fake:(.text+0x2): undefined reference to `__imp_pthread_mutex_destroy' /usr/lib/libpthread.a(t-d001067.o):fake:(.text+0x2): undefined reference to `__imp_pthread_mutex_init' /usr/lib/libpthread.a(t-d001068.o):fake:(.text+0x2): undefined reference to `__imp_pthread_mutex_lock' /usr/lib/libpthread.a(t-d001071.o):fake:(.text+0x2): undefined reference to `__imp_pthread_mutex_unlock' /usr/lib/libpthread.a(t-d001101.o):fake:(.text+0x2): undefined reference to `__imp_pthread_setspecific' collect2: error: ld returned 1 exit status Is there a proper way of getting the minizip lib statically-compiled? Thank you -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple