Elektron SDK - C/C++

API Family: Elektron

ETA C Compiler Settings

ETA C Project Settings and Templates

The following guides provide the necessary compiler and environment settings required to build and run an ETA C application. For each environment, a project template file is available for download allowing the developer a convenient starting point to build their own applications.

Note: ETA is packaged as part of the Elektron SDK bundle.  Refer to the README file within the Eta subfolder of the Elektron SDK bundle for the complete list of OS and compiler support.

The ETA packages provide the ability to:

  • Build statically linked and dynamically linked binaries
  • Support for debug and release build types
  • Support for 64-bit architectures

Choose your development environment:

  ETA static libraries ETA shared libraries
Visual Studio Statically Linked Binary Dynamically Linked Binary
Linux Statically Linked Binary Dynamically Linked Binary

Project Templates:

Download a project template to be used as a base starting point to build your ETA C projects. The templates contain all the properties as outlined within the development settings defined above. Note: Refer to the Environment section within the development setting tables to ensure your specific environment is defined properly.


Windows - Visual Studio - Statically Linked Binary

Note: <ETA root> is a directory which is located within your Elektron SDK installation package


Include Path Within Properties: VC++ Directories -> Include Directories define the following:
  • <ETA root>\Include\Transport;<ETA root>\Include\Reactor;<ETA root>\Include\RDM;

    <ETA root>\Include\Util;<ETA root>\Include\Codec;<ETA root>\Include\Cache

Lib Path

VS2017

(ETA 1.2 or greater)

Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS150\Debug_MDd
  • <ETA root>\Libs\WIN_64_VS150\Release_MD

Lib Path

VS2015

(ETA 1.0.2 or greater)

Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS140\Debug_MDd
  • <ETA root>\Libs\WIN_64_VS140\Release_MD
Lib Path

VS2013
Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS120\Debug_MDd
  • <ETA root>\Libs\WIN_64_VS120\Release_MD
Lib Path

VS2012
Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS110\Debug_MDd
  • <ETA root>\Libs\WIN_64_VS110\Release_MD
Libs Within Properties: Linker -> Input -> Additional Dependencies include the entry below:
  • librssl.lib;librsslVA.lib (ETA 1.2 or greater)
  • librssl.lib;librsslRDM.lib;librsslReactor.lib;librsslVAUtil.lib; (ETA 1.1.x or earlier)
Compiler Settings Within Properties define all settings below:
  • C/C++ -> Precompiled Headers define: Precompiled Header: Not using Precompiled Headers
  • Linker -> Advanced: Ensure Image Has Safe Exception Handlers is blank
Runtime Environment No runtime environment settings required.

Windows - Visual Studio - Dynamically Linked Binary

Note: <ETA root> is a directory which is located within your Elektron SDK installation package


Include Path Within Properties: VC++ Directories -> Include Directories define the following:
  • <ETA root>\Include\Transport;<ETA root>\Include\Reactor;<ETA root>\Include\RDM;

    <ETA root>\Include\Util;<ETA root>\Include\Codec

Lib Path

VS2017

(ETA 1.2 or greater)

Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS150\Debug_MDd\Shared
  • <ETA root>\Libs\WIN_64_VS150\Release_MD\Shared

Lib Path

VS2015

(ETA 1.0.2 or greater)

Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS140\Debug_MDd\Shared
  • <ETA root>\Libs\WIN_64_VS140\Release_MD\Shared
Lib Path

VS2013
Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS120\Debug_MDd\Shared
  • <ETA root>\Libs\WIN_64_VS120\Release_MD\Shared
Lib Path

VS2012
Within Properties: VC++ Directories -> Library Directories define only one based on your build preference:
  • <ETA root>\Libs\WIN_64_VS110\Debug_MDd\Shared
  • <ETA root>\Libs\WIN_64_VS110\Release_MD\Shared
Libs Within Properties: Linker -> Input -> Additional Dependencies include the entry below:
  • librssl.lib;librsslVA.lib
Compiler Settings Within Properties define all settings below:
  • C/C++ -> Precompiled Headers define: Precompiled Header: Not using Precompiled Headers
  • Linker -> Advanced: Ensure Image Has Safe Exception Handlers is blank
Runtime Environment

Ensure the selected Lib Path detailed above is defined within your system path


Linux - Statically Linked Binary

Note: <ETA root> is a directory which is located within your Elektron SDK installation package


Include Path Using the header include flag (-I):
  • -I<ETA root>/Include/Transport -I<ETA root>/Include/Reactor -I<ETA root>/Include/RDM

    -I<ETA root>/Include/Util -I<ETA root>/Include/Codec 
Lib Path Using the library include flag (-L), choose one based on your compiler:

Compiler ETA Lib Path
GCC suite 4.4.4 or higher for RHAS 6.0 (64-bit)
  • -L<ETA root>/Libs/RHEL6_64_GCC444/Optimized
  • -L<ETA root>/Libs/RHEL6_64_GCC444/Optimized_Assert
GCC suite 4.8.2 or higher for Oracle Linux 7.0 (64-bit)
  • -L<ETA root>/Libs/OL7_64_GCC482/Optimized
  • -L<ETA root>/Libs/OL7_64_GCC482/Optimized_Assert

Note: Oracle Linux 7.0 libraries are fully compatible with RHEL7.

Libs Libraries to be linked using (-l):
  • -lrssl -lrsslTransport -lrsslReactor -lrsslRDM -lrsslVAUtil
Compiler Settings Compiler flags (-D): -DLinux
Runtime Environment No runtime environment settings required.

Linux - Dynamically Linked Binary


Include Path Using the header include flag (-I):
  • -I<ETA root>/Include/Transport -I<ETA root>/Include/Reactor -I<ETA root>/Include/RDM

    -I<ETA root>/Include/Util -I<ETA root>/Include/Code
    c
Lib Path Using the library include flag (-L), choose one based on your compiler:

Compiler ETA Lib Path
GCC suite 4.4.4 or higher for RHAS 6.0 (64-bit)
  • -L<ETA root>/Libs/RHEL6_64_GCC444/Optimized/Shared
  • -L<ETA root>/Libs/RHEL6_64_GCC444/Optimized_Assert/Shared
GCC suite 4.8.2 or higher for Oracle Linux 7.0 (64-bit)
  • -L<ETA root>/Libs/OL7_64_GCC482/Optimized/Shared
  • -L<ETA root>/Libs/OL7_64_GCC482/Optimized_Assert/Shared

Note: Oracle Linux 7.0 libraries are fully compatible with RHEL7.

Libs Libraries to be linked using (-l):
  • -lrssl -lrsslVA
Compiler Settings Compiler flags (-D): -DLinux
Runtime Environment

Ensure the selected Lib Path detailed above is defined within your library path environment variable: LD_LIBRARY_PATH

Tutorial Group: 
Compiler Settings