# Compiling the EcMasterDemo
The following main rules can be used to generate the example applications for all operating systems.
- `` is a placeholder for the operating system used.
- `` is a placeholder for the architecture. Different architectures are supported.
## EtherCAT® MainDevice Software Development Kit (SDK)
The EtherCAT® MainDevice development kit is needed to write applications based on the MainDevice stack.
The MainDevice stack is shipped as a library which is linked together with the application.
The following components are supplied together with an SDK:
: ```default
/Bin
/Doc
/SDK
/SDK/INC
/SDK/LIB
/SDK/FILES
/Sources/Common
```
`/Bin`
: Executables containing the MainDevice stack
`/Doc`
: Documentation
`/Examples`
: One or more example applications using a predefined EtherCAT® configuration. It is easily adaptable to different configurations using an appropriate EtherCAT® configuration XML file.
`/SDK`
: EtherCAT® Software Development Kit containing libraries and header files to build C/C++-applications
`/SDK/INC`:
: Header files to be included with the application
`/SDK/LIB`:
: Libraries to be linked with the application
`/SDK/FILES`:
: Additional files for platform integration (e.g. Windows CE registry files)
`/Sources/Common`:
: Shared .cpp-files
## Include search path
The header files are located in the following directories:
: ```default
/SDK/INC
/SDK/INC//
/Sources/Common
```
## Libraries
The libraries are located in the following directories:
: ```default
/SDK/LIB//
```