This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 


Download Summary:

Support the Site
Become a HPC:Factor Plus Subscriber Member button
Support us on Patreon button
Support HPC:Factor in continuing to offer support and downloads to the community! Make a donation button.

The GNUWINCE package is a collection of tools supporting C, C++, and Java programming for Windows CE.

To download you must be logged-in and be a subscriber or have met our community quality and reputation requirements as a free user. (Find out more · Subscribe)
Download Size:
9 KB - 135.65 MB
Release Date:
Number of Downloads:
Added By:
C:Amie on 27/05/2020 9:09:47 AM


The GNUWINCE package is a collection of tools supporting C, C++, and Java programming for Windows CE. It consists of:

- the GNU Compiler Collection, assembler, and linker
- modifications to these generic tools to support functionality peculiar to Windows CE;
- the newlib Standard C library with extensive additions to provide a fairly complete POSIX-like runtime environment.
- remote login shell and ftp daemon.
- conveniently packaged documentation for all of the above.

The current release, GNUWINCE 1.0, was released on 2003-10-04.

Getting Started
The Windows CE runtime environment provided by Microsoft is woefully incomplete. Many important features needed for creating sophisticated applications are missing:

a complete (and completely functional) Standard C Library
a complete math library
current working directory
environment variables
process creation with command line arguments
stdio framework that permits normal terminal i/o to or from processes
standard Berkeley sockets API

GNUWINCE provides all of these things and much more in a comprehensive framework that makes developing Windows CE programs much easier - it obviates the need to write WIN32-specific code by providing a "POSIX like" environment that enables rapid application development. GNUWINCE allows most open-source software to run on Windows CE with very little modification.
ush and the Shell Utilities
The ush shell and its associated utilities provide a simple remote login facility that is entirely missing on "stock" Windows CE. ush, which stands for "micro shell", is loosely based on the well-known bash shell and makes software development on Windows CE much easier. GNUWINCE applications that you create automatically have their standard input and output going to ush, so that it is trivial to write simple command-line programs that accept input from and produce output in the shell in the usual way. An example is shown below. A repertoire of shell utilities (ps, kill, mkdir, ls, etc.) are provided to make using the shell a comfortable experience for anyone already familiar with Linux or UNIX.

To get started with ush, obtain the winceos binaries tarball. From this tarball, copy ush and the utilities (e.g. ps, kill, mkdir, ls, etc.) to directory /bin on your Windows CE 3.0 (or above) device. (Note: You will need to create this directory.) Copy the rlogind daemon (also provided in the winceos tarball) into /windows/Start Menu. Run rlogind from the start menu on your device. At this point, you can login from your linux/unix host or another rlogin client:

zetar% rlogin

where "" is the IP address of your network-connected Windows CE device. The "#" is the ush shell prompt; if you see this you can try out a few shell commands. Let's try to print out and manipulate environment variables:

# setenv FOO bar
# env

Note that ush transfers its environment variable settings to any child processes it creates and that therefore GNUWINCE child processes (e.g. your application) automatically inherit environment variable settings made in the shell. GNUWINCE also provides all processes with the current working directory, and thus ush allows you to "cd" and "pwd" in the expected way:

# pwd
# cd /bin
# pwd

Building and Running hello.c
No tutorial would be complete without the obligitory "hello world" example, so here it we go:

#include <stdio.h>

int main(int argc, char *argv[])
printf("Hello, world!\n");

To compile and link this test program, execute the following command on your Linux build host:

zetar% arm-wince-pe-gcc -march=armv4 -mapcs-32 -malignment-traps -DNEWLIB -DSARM -DWIN32 -DGNUWINCE hello.c -lc -lgcc -lwinsock -lcoredll

A few points about this test program and its compilation under GNUWINCE:

The non-portable Microsoft header files (e.g. windows.h) are unnecessary. This is often true when compiling GNUWINCE programs; the code can retain a clean POSIX style without having to adopt Microsoft-specific idioms.
The code generation options for the above compilation produce correct, efficient code for both StrongARM and Xscale devices. Omitting any of these options when compiling for either StrongARM or Xscale platforms WILL cause problems.
The libraries specified with "-l" are REQUIRED; these represent the minimum needed to achieve link closure for even the simplest case.

To run the program, copy the "a.exe" executable file created in the previous step to /bin on your Windows CE device. Run the test program in the shell by typing "a.exe" at the shell prompt:

# a.exe
Hello World!

should be the response printed out in your ush session.

System Requirements:



10.40 MB
MD5: 99E18B924ECAC02D6AD86A018A311AED
21.70 MB
MD5: D9C8D0B1939D2E7E86649EAC13796BE1
9 KB
MD5: C45A61620745F62A3CFA19B5CE7ECD5C
2.69 MB
MD5: 80D7FB3451D3CE1E831B466757F492EF
53.16 MB
MD5: 04C23D05BEDBFC0A62F68A33CD54A6F9
46.38 MB
710 KB
MD5: C7D676DC5F2AA713C3A223D63B02B5C7
636 KB
MD5: 365F857A6E1DE9B42114D24B45CB8623


Support the Site
Become a HPC:Factor Plus Subscriber Member button
Support us on Patreon button
Support HPC:Factor in continuing to offer support and downloads to the community! Make a donation button.
HPC:Factor believes that the Internet is a better place without the constant displaying of adverts on community website resources and as such does not carry 'ad-words', banners, pop-up's or any other form of paid advertising.

Please help to pay for the download that you are getting from us today and help to support our desire to run the site without paid subscriptions or advertising by making a donation to the site. It doesn't matter how much or little you donate, but by donating you will help to ensure that we can continue to offer some of the Internet's most popular, rarest and unusual downloads for Windows CE devices for now and for the future.