CeGCC cross compiler for PocketPC

Choosing in which environment to develop

A Unix-like application

Use only the Windows CE API

Choosing in which environment to develop

If you want to build an existing Windows CE application that already builds with eVC or MSVC, or you want to develop a Windows CE application that only depends on the Win32 API and the limited libc support coredll.dll (the native runtime) offers, then what you want is mingw32ce.

If you want to port an application that depends on a more complete c runtime, the cegcc toolchain will be a better environment. Cegcc offers unified file descriptors, (in-process only) signals, (TODO: to be completed).

Microsoft environment equivalents

The /ENTRY option to the Microsoft compiler is equivalent to ld's -e option.

Console Applications

In the NT/9x target versions of Microsoft's tools, there is have some default behaviour, such as if main is defined then CONSOLE subsytem is the default.

Windows CE applications don't have that functionality, as they must always specify the Windows CE subsystem: http://msdn2.microsoft.com/en-us/library/fcc1zstk.aspx

If you want to develop a console based application, take a look at Pocket Console: http://www.symbolictools.de/public/pocketconsole/

The default user entry point in mingw32ce is WinMain, but if you don't provide one, a default one will be linked in that will call the standard int main (int argc, char** argv) with argc and argv properly filled.