Why would compiling a program which has an int main(void)
main function differ from compiling a program which has an int main(int argc, char *argv[])
main function, if the program does not use arguments passed on the command line?
Is this OS or compiler specific? I do not get the same results using mingw and g++(which is weird isn't it as wingw is a port of gcc).
#include <iostream>
#include"SDL/SDL.h"
int main(void)
{
return 0;
}
g++ test.cpp; #g++ 4.4.5
i586-mingw32msvc-g++ test.cpp; # mingw 4.4.4
(Given by the second command.)
a(main.o):(.text+0x85): undefined reference to `_WinMain@16'
This is SDL thing. On Windows, when you include SDL.h
,main
is redefined to SDL_main
which calls WinMain
(the real entry point in non-console Windows apps), does some initialization and finally calls your main code. It has a signature with argc
and argv
and you're pretty much required to follow it, so int main()
won't work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With