Compiling a C++ Application

The following command lines demonstrate the minimum set of options required to compile and link an eCos program written in C++.

Note: Remember that when this manual shows TARGET-g++ you should use the full name of the cross compiler, e.g. i386-elf-g++, arm-eabi-g++, or sh-elf-g++. When compiling for the synthetic Linux target, use the native g++ which must have the features required by eCos.

$ TARGET-g++ -c  -IINSTALL_DIR/include -fno-rtti -fno-exceptions file.cxx
$ TARGET-g++ -o program file.o -LINSTALL_DIR/lib -Ttarget.ld -nostdlib

Note: Certain targets may require extra options, for example the SPARClite architectures require the option -mcpu=sparclite. Examine the BASE_DIR/packages/targets file or BASE_DIR/examples/Makefile or the “Global compiler flags” option (CYGBLD_GLOBAL_CFLAGS) in your generated eCos configuration) to see if any extra options are required, and if so, what they are.

The following command lines use some other options which are recommended because they use the selective linking feature:

$ TARGET-g++ -c -IINSTALL_DIR/include -I. -ffunction-sections -fdata-sections -fno-rtti \
          -fno-exceptions -finit-priority -g -O2 file.cxx
$ TARGET-g++ -o program file.o -W1,--gc-sections -g -O2 -LINSTALL_DIR/lib -Ttarget.ld  -nostdlib
Documentation license for this page: Open Publication License