Compilation with winegcc and linking with msvcrt

Alex Henrie alexhenrie24 at gmail.com
Fri Aug 19 05:16:23 CDT 2016


2016-08-18 14:10 GMT-06:00 Ruslan Kabatsayev <b7.10110111 at gmail.com>:
> Hello all,
>
> I'm trying to compile a simple application like follows with winegcc,
> linking to msvcrt (which this test doesn't require, but it's a reduced
> test case):
>
> #include <stdio.h>
> int main()
> {
>     printf("Hello");
>     fflush(stdout);
>     printf(", world!\n");
>     return 0;
> }
>
> I compile it with this command:
> winegcc test.c -o test -lmsvcrt
>
> Looks pretty harmless, but when I run it, it only prints "Hello" and
> hangs on fflush. If I don't link it to msvcrt, then it doesn't hang.
> Why is it so? Is it a bug in Wine?
>
> Regards,
> Ruslan

It's probably a conflict between msvcrt and glibc. The winegcc
documentation states that the -mno-cygwin flag "is necessary for the
vast majority of Win32 applications, as they typically depend on
various features of MSVCRT".[1] You could also compile your program as
an actual Windows EXE with `x86_64-w64-mingw32-cc test.c -o test.exe`.

-Alex



More information about the wine-devel mailing list