Developer's Guide > Get Started with Civil SDK > Downloading Civil SDK
Downloading Civil SDK

Where to Download From

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
  • dll — Indicates dynamic link library version
  • md, mt, ml — /MD, /MT, etc. Visual Studio 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 Civil SDK, the CRT library used by the application must match the CRT library used by the Civil 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, Civil_vc11mt.zip contains the Civil 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, Civil_vc11dll.zip contains the Civil 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, Civil_vc11md.zip contains the Civil 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 Civil 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

Archive Contents in the Civil Folder

Folder Description
Include Client header files.
Examples Sample code illustrating usage.
    AECCExtensions Code adding to the base-functionality of the Civil SDK.
    Android Android-only sample applications.
    ExLDTEnts Sample application that iterates Land Desktop primitives: AECCDbPoint, AeccDbCogoPoint and AECCDbContour, prints their properties to the console, explodes and copies them to the output drawing.
    ExTcAecCleanup Sample application that removes all AEC data and converts civil or architectural drawing to a plain .dwg file. Allows to explode AEC entities before erasure to make the resulting drawing be visually similar to the source one.
    ExTcCopy Sample application that saves a source .dwg file to another .dwg file to update it to the latest version, or visualizes a drawing to a .bmp image.
    ExTcCreateProfile Sample application that demonstrates creation of profile and profile view, using existing alignment and surface (source file must contain them).
    ExTcPoints Sample application that demonstrates creation of COGO points.
    ExTcSurfaceGrid Sample application that demonstrates creation of a grid surface.
    ExTcSurfaceTin Sample application that demonstrates creation of a TIN surface.
    iOS iOS-only sample applications.
       iOdaApp A simple iOS application that can read, write, render and dump to console .dwg/.dxf files.
    TCCommonEx Simple examples of the common Civil SDK functionality.
    TCReadEx Analog of the OdReadEx sample with Civil modules loading.
    WinRT Windows RT-only sample applications.
       OdaWinRTApp Windows RT application that loads and vectorizes .dwg files.
Resource Resource files.
Tests Tests.
Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.