Kernel SDK Developer's Guide > Getting Started Using Kernel SDK > Downloading Kernel SDK
Downloading Kernel SDK

Where to Download

The most recent and previous releases can be downloaded from http://www.opendesign.com/members/memberfiles or https://www.opendesign.com/odoutgoing/Releases/.

Only registered Open Design Alliance members can access the download pages. For more information regarding Open Design Alliance Membership, please see http://www.opendesign.com/join.

ODA Platform Naming Conventions

The following is a list of naming conventions used for ODA platform downloadable archives (.zip and .tar.gz), by platform. In general, unless "dll" appears in the archive name, the archive contains static libraries.

Windows

Windows 32-bit and 64-bit

  • vc<N> — Microsoft Visual Studio version, where <N> means:
    • 8 — Microsoft Visual Studio 2005
    • 9 — Microsoft Visual Studio 2008
    • 10 — Microsoft Visual Studio 2010
    • 11 — Microsoft Visual Studio 2012
    • 11xp — Microsoft Visual Studio 2012 with WinXP support
    • 12 — Microsoft Visual Studio 2013
    • 12xp — Microsoft Visual Studio 2013 with WinXP support
    • 14 — Microsoft Visual Studio 2015
    • 14xp — Microsoft Visual Studio 2015 with WinXP support
  • bb<N> — Borland/Embarcadero C++ Builder version <N>
  • dll — Indicates dynamic link library version
  • md, mt, ml — /MD, /MT, etc. Visual Studio compiler options (static library)
  • wm, wr — /WM, /WR, etc. Borland compiler options (static library)
  • dbg — Indicates the presence of debug information (/mtd, /mdd, /wrd, /wmd, etc.)
  • rwd — Release build containing debug information (useful for reproducing certain types of runtime problems)
  • amd64 — Libraries built for the x86 AMD64 platform

Windows CE (VS2005)

  • armv4, armv4i — Platforms for which the libraries are built
  • mt, mtdbg — /MT or /MTd (debug) compiler option, respectively

Windows RT (VS2012)

  • winrt — Platforms for which the libraries are built
  • md, mddbg — /MD or /MDd (debug) compiler option, respectively

Choosing a downloadable archive for Windows platforms

All ODA software executables are built with dependency on the C/C++ runtime library (CRT), which implements basic functionality, such as input/output operations, memory management, string manipulation, and so on.

There are two ways of linking the CRT library:

  • Static linking
  • Dynamic linking

And there are three types of CRT libraries:

  • Static Single Threaded
  • Static Multi Threaded
  • Dynamic Link Multi Threaded

Each type can be represented with a Release or Debug configuration.

To get a successfully built custom application developed with the Kernel API, the CRT library used by the application must match the CRT library used by the Kernel libraries. In other words, custom applications should use the same compiler switch that was used to build ODA libraries. Compiler switches used for different library configurations are illustrated in the table below.

Library Type and Configuration Compiler Switch CRT Library File Name Macros Name
Single Threaded /ML LIBC
Single Threaded Debug /MLd LIBCD _DEBUG
Static Multi Threaded /MT LIBCMT _MT
Static Multi Threaded Debug /MTd LIBCMTD _MT, _DEBUG
Dynamic Link (DLL) /MD MSVCRT _MT, _DLL
Dynamic Link (DLL) Debug /MDd MSVCRTD _MT, _DLL, _DEBUG

ODA library downloads support each of these reusable CRT library types:

  • Downloadable archives with Static CRT contains the mt suffix in its name. For example, Kernel_vc11mt.zip contains the Kernel archive with Static CRT, built with Microsoft Visual Studio 2012.
    This configuration requires that you use an /MT switch to build a custom application.
  • Downloadable archives with Dynamic Link Multi Threaded CRT contains the dll suffix in its name. For example, Kernel_vc11dll.zip contains the Kernel archive with the Dynamic Link Multi Threaded CRT, built with Microsoft Visual Studio 2012.
    This configuration requires that you use an /MD switch to build a custom application.
  • Downloadable archives with Static/Dynamic CRT contains the md suffix in its name. For example, Kernel_vc11md.zip contains the Kernel archive with both Static Multi Threaded and Dynamic Link Multi Threaded CRT, built with Microsoft Visual Studio 2012.
    This configuration also requires that you use an /MD switch to build a custom application, but it allows you to mix the static and DLL (dynamic) reusable CRT library types.

Using compiler switches when building a custom application or DLL:

  • The /MD switch causes a custom application or DLL to use the Multi Threaded and DLL versions of the CRT library. It defines _MT and _DLL macros within an application and causes the compiler to place the library name MSVCRT.lib into the .obj file.
    Custom applications and DLLs compiled with this option are statically linked to MSVCRT.lib, containing code which allows them to resolve external references.
    Actual working code is contained in MSVCR90.DLL. This file must be availableat run time.
  • The /MT switch causes a custom application or DLL to use the Static Multi Threaded version of the CRT library. It defines the _MT macro within an application and causes the compiler to place the library name LIBCMT.lib into the .obj file. In this case, the linker uses LIBCMT.lib to resolve external symbols.

Note that the question of choosing a Kernel downloadable archive is the same question of choosing a CRT library linking method: dynamic or static. The chosen method determines whether a custom application or DLL will have any external DLL dependencies.

Linux

  • lnx — Linux
  • X86, X64 — Indicates X86 or X64 platform
  • 3.3, 3.4, 4.1, 4.2, etc. — GCC versions
  • dll — Indicates a shared library version
  • pic — Compiled with Position Independent Code option

Android

  • android — Android OS
  • armeabi, armeabi-v7a, x86, x86_64 — ARM specific build
  • linux, mingw — Build environment, under Linux or Windows using MinGW, respectively
  • dbg — Indicates the presence of debug information

macOS

  • macOsX — macOS
  • x86, x64 — Libraries built for X86 and X64 respectively
  • 10.4, 10.5, etc. — Version number of macOS that the libraries are built for
  • dll — Indicates a shared library version
  • pic — Compiled with Position Independent Code option

iOS

  • iphone — iOS
  • 5.1 etc. — iOS SDK version (note, this not an iOS version!)
  • sim — Simulator build (real device otherwise)
  • dbg — Indicates the presence of debug information

Solaris

  • sol — Oracle Solaris
  • x86, x64 — Platform for which the libraries are built
  • pic — Compiled with Position Independent Code option
  • gcc — Compiled by GCC

Solaris (SPARK)

  • sparc32, sparc64 — Oracle Solaris (SPARC) libraries compiled for 32-bit and 64-bit use, respectively
  • pic — Compiled with Position Independent Code option
  • gcc — Compiled by GCC (Sun compiler otherwise)

HP

  • hp32, hp64 — Libraries compiled for 32-bit and 64-bit use, respectively
  • pic — Compiled with Position Independent Code option
Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.