Вот ссылка на описание __stdcall в MSDN:
http://msdn.microsoft.com/en-us/library/zxk0tw93(VS.80).aspx
Используется только для вызова функций WinAPI. Чтобы портировать такое приложение Windows на Linux, вам нужно гораздо больше, чем просто определить __stdcall:
#ifndef WIN32 // or something like that...
#define __stdcall
#endif
Вам также потребуется вызывать специфичные для Linux функции API вместо Win32 API. В зависимости от конкретной части Win32 API и размера приложения (объема кода), это может быть где-то между умеренно сложным и пугающим.
Какие конкретные функции помечены приложением как __stdcall?
Действительно, порт GCC для Windows должен иметь __stdcall, поскольку он должен генерировать соответствующий код для платформы Win32. Но поскольку в Linux существует только одно стандартное соглашение о вызовах, и оно совпадает с выводом компилятора по умолчанию, этот оператор не нужен.
Причина, по которой ваше приложение не компилируется в Linux, почти наверняка связана с тем, что оно ссылается на функции Win32 API, которые не определены в Linux - вам необходимо найти соответствующие аналоги Linux. Win32 API и Linux GLibc API очень сильно отличаются друг от друга и не могут быть легко заменены.
Вероятно, самый простой способ перенести ваше приложение на Linux - это использовать Wine, то есть модифицировать код Windows таким образом, чтобы он нормально работал под Wine в Linux. Таким образом, даже самые сложные приложения, такие как современные компьютерные игры, были созданы для работы под Linux.
Конечно, если вы действительно хотите, чтобы он работал под Linux, то портирование - единственный путь.