If this works as expected:
Lenovo@Lenovo-Komputer MINGW64 ~/source/hft (master)
$ gcc.exe main.c -o main.exe -lmsvcr110 && ldd ./main.exe # main.exe links to /c/WINDOWS/SYSTEM32
ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff8d6130000)
KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff8d3a30000)
KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff8d2030000)
msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ff8d5e70000)
MSVCR110.dll => /c/WINDOWS/SYSTEM32/MSVCR110.dll (0x7ff8c3980000)
then why issuing this command in following manner ends up with this error?
Lenovo@Lenovo-Komputer MINGW64 ~/source/hft (master)
$ gcc.exe main.c -o main -lmsvcr110 -L /c/WINDOWS/SYSTEM32/ && ldd ./main.exe # so why explicit path makes linking error?
d000027.o:(.idata$5+0x0): multiple definition of `__imp___C_specific_handler'
d000024.o:(.idata$5+0x0): first defined here
d000057.o:(.idata$5+0x0): multiple definition of `__imp___iob_func'
d000031.o:(.idata$5+0x0): first defined here
d000057.o:(.idata$6+0x0): multiple definition of `__nm___iob_func'
d000031.o:(.idata$6+0x0): first defined here
d000058.o:(.idata$5+0x0): multiple definition of `__imp___setusermatherr'
d000034.o:(.idata$5+0x0): first defined here
d000058.o:(.idata$6+0x0): multiple definition of `__nm___setusermatherr'
d000034.o:(.idata$6+0x0): first defined here
collect2.exe: error: ld returned 1 exit status