Close

Relief for ODA Team in Ukraine

Learn more
ODA PRC SDK
Download ODA PRC SDK

The most recent release can be downloaded from the Downloads section of your personal account.

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

ODA PRC SDK releases are available as downloadable archives (.zip or tar.gz files depending on the platform). When an archive name does not include "dll," the archive contains static libraries.

To obtain the correct libraries for your compiler on your platform:

  1. Create a directory on your computer for the ODA PRC SDK libraries, header files, and documentation.
  2. Download the ODA PRC SDK libraries for your operating system and compiler.
  3. Extract the libraries and documentation, making sure to preserve the directory structure stored in the compressed files. Examples and samples are included in the archives.
    For a detailed description of archive contents, see ODA PRC SDK Archive Contents.

ODA PRC SDK archives are provided for the following operating systems:

Archive File Name Structure

Downloadable archive file names consist of the ODA PRC SDK product prefix (PRC_) and platform-specific information (listed below).

Archives for Windows

Signature Description
Compiler Version
  • Microsoft Visual Studio:
    • vc8 – Microsoft Visual C++ 2005
    • vc9 – Microsoft Visual C++ 2008
    • vc10 – Microsoft Visual C++ 2010
    • vc11 – Microsoft Visual C++ 2012
    • vc11xp – Microsoft Visual C++ 2012 with WinXP support
    • vc12 – Microsoft Visual C++ 2013
    • vc12xp – Microsoft Visual C++ 2013 with WinXP support
    • vc14 – Microsoft Visual C++ 2015
    • vc14xp – Microsoft Visual C++ 2015 with WinXP support
  • Borland/Embarcadero C++ Builder:
    • bb2010 – Borland/Embarcadero C++ Builder 2010 (available only for 32-bit platforms)
Platform
  • amd64 – Libraries built for the x86 AMD64 platform
Library Type
  • Dynamic libraries built with Microsoft Visual C++:
    • dll – Dynamic multi-threading libraries (release configuration)
    • dlldbg – Dynamic libraries with debug information (debug configuration)
  • Static libraries built with Microsoft Visual C++:
    • ml – Static single-threading libraries (release configuration)
    • mldbg – Static single-threading libraries with debug information (debug configuration)
    • mt – Static multi-threading libraries (release configuration)
    • mtdbg – Static multi-threading libraries with debug information (debug configuration)
  • Both static and Dynamic libraries built with Microsoft Visual C++
    • md – Static and Dynamic multi-threading libraries (release configuration)
    • mddbg – Static and Dynamic multi-threading libraries with debug information (debug configuration)
  • Static libraries built with Borland/Embarcadero C++ Builder:
    • wm – Static multi-threading libraries (release configuration)
    • wmdbg – Static multi-threading libraries with debug information (debug configuration)
    • wr – Static single-threading libraries (release configuration)
    • wrdbg – Static single-threading libraries with debug information (debug configuration)
  • rwd – Release built with runtime debug information (useful for reproducing certain types of runtime problems)

How to Choose a Downloadable Archive for Windows Platforms

All ODA PRC SDK 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 based on ODA Platform, the CRT library used by the application must match the CRT library used by the ODA Platform library. In other words, custom applications should use the same compiler switch that was used to build ODA Platform. The table below illustrates compiler options used for different library configurations.

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

Downloadable archives are available that support each of these reusable CRT library types:

  • Downloadable archives with Static CRT contains the mt suffix in its name. For example, PRC_vc11mt.zip contains the ODA PRC SDK archive with Static CRT, built with Microsoft Visual Studio 2012.
    This ODA Platform configuration requires that you use a /MT switch to build a custom application.
  • Downloadable archives with Dynamic Link Multi-Threaded CRT contains the dll suffix in its name. For example, PRC_vc11dll.zip contains the ODA PRC SDK archive with the Dynamic Link Multi-Threaded CRT, built with Microsoft Visual Studio 2012.
    This ODA Platform configuration requires that you use a /MD switch to build a custom application.
  • Downloadable archives with Static/Dynamic CRT contains the md suffix in its name. For example, PRC_vc11md.zip contains the ODA PRC SDK archive with both Static Multi-Threaded and Dynamic Link Multi-Threaded CRT, built with Microsoft Visual Studio 2012.
    This ODA Platform configuration also requires that you use a /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 available at 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 ODA PRC SDK 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.

Archives for Linux

Signature Description
Platform
  • lnxX86 – Libraries built for the 32-bit Linux platform
  • lnxX64 – Libraries built for the 64-bit Linux platform
GNU Compiler Collection Version
  • 3.3 – GCC version 3.3
  • 3.4 – GCC version 3.4
  • 4.1 – GCC version 4.1
  • 4.2 – GCC version 4.2
  • 4.4 – GCC version 4.4
  • 4.7 – GCC version 4.7
  • 4.8 – GCC version 4.8
  • 4.9 – GCC version 4.9
  • 5.2 – GCC version 5.2
  • 5.3 – GCC version 5.3
Library Type
  • dll – Shared libraries (*.so files)
  • pic – Static libraries (*.a files) compiled with Position Independent Code option
  • If dll or pic are not specified – Static libraries (*.a files)

Archives for Android

Signature Description
Platform
  • ARM specific builds:
    • android_armeabi – ARM processors that support at least the ARMv5TE instruction set
    • android_armeabi-v7a – ARM processors with instruction set extensions
  • Non-ARM processor architectures:
    • android_x86 – Processors with x86 instruction set
    • android_x86_64 – Processors with x86-64 instruction set
NDK Version
  • r9d – Google NDK version r9d
  • r10c – Google NDK version r10c
Build Platform
  • Linux:
    • linux – Compiled on Linux x86 platform
    • linux_x64 – Compiled on Linux x64 platform
  • Windows:
    • mingw – Compiled with MinGW on Win32 platform
    • mingw_x64 – Compiled with MinGW on Win64 platform
Library Type
  • dbg – Indicates the presence of debug information (debug configuration)
  • If dbg is not specified, indicates the release configuration

Archives for macOS

Signature Description
Platform
  • macOsX_x86 – 32-bit platform (x86)
  • macOsX_x64 – 64-bit platform (x86)
macOS SDK Version
  • 10.11 – macOS SDK 10.11
  • 10.10 – macOS SDK 10.10
  • 10.9 – macOS SDK 10.9
  • 10.8 – macOS SDK 10.8
  • 10.7 – macOS SDK 10.7
  • 10.6 – macOS SDK 10.6
  • 10.5 – macOS SDK 10.5
Library Type
  • dll – Dynamic libraries
  • pic – Static libraries with ability to be used in a shared library (with Position Independent Code option)

Archives for iOS

Signature Description
iOS SDK Version
  • iphone_x9.1 – iOS 9.1 (built on macOS 10.10)
Library Type
  • dbg – Static libraries with debug information (debug configuration)
  • sim – Static libraries for running on iPhone simulator
  • If dbg or sim are not specified – Static libraries (release configuration)

Archives for Solaris

Signature Description
Platform
  • solx86 – Solaris for 32-bit processors (x86)
  • solx64 – Solaris for 64-bit processors (x64)
Library Type
  • pic – Static libraries with ability to be used in a shared library (with Position Independent Code option)
  • If pic is not specified – Static libraries (release configuration)

Archives for Sparc

Signature Description
Platform
  • sparc32 – 32-bit processors (x86)
  • sparc64 – 64-bit processors (x64)
Compiler
  • gcc – Sparc-sun-solaris2.10-gcc cross compiler
  • If gcc is not specified – Sun C++ Compiler version 5.5
Library Type
  • pic – Static libraries with ability to be used in a shared library (with Position Independent Code option)
  • If pic is not specified – Static libraries (release configuration)

Archives for HP-UX

Signature Description
Platform and Compiler
  • hp64 – HP-UX x64 system using the aCC compiler
Library Type
  • pic – Static libraries with ability to be used in a shared library (with Position Independent Code option)
  • If pic is not specified – Static libraries (release configuration)

ODA PRC SDK Archive Contents

Item (folder or file) Operating system Description
bin
Non-Windows PRC SDK binary executable and library files. Files are placed in the appropriate subfolder. The name of the subfolder depends on the specific platform, compiler version, and processor architecture.
build
Non-Windows Contains CMake configuration files for building PRC SDK executable and library files.
CommonApplications
All The source code for different useful applications based on the PRC SDK.
Exchange
All The source code for modules responsible for data exchange between different CAD formats. For example, this folder contains source code for exporting data from BimRv, .dgn and .dwg formats to the .prc format.
exe
Windows PRC SDK binary executable and library files for Windows platforms. Files are placed in the appropriate subfolder. The name of the subfolder depends on the specific platform, compiler version, and processor architecture.
Kernel
All PRC SDK header files from the Kernel SDK. This folder also contains the source code for Kernel SDK extensions used in the PRC SDK.
KernelBase
All PRC SDK header files from the base part of the Kernel SDK.
lib
All PRC SDK library files and other binary libraries the PRC SDK depends on.
Platforms
Win Project files generated with CMake for the Windows platform. Contains two solutions:
  1. PRC_vc*_ex — includes example application, extensions and import/export functionality.
  2. PRC_vc*_ext — includes modules from Common Application sub-folder and related example applications.

vc* — the suffix that determines the compiler version and platform-specific information. For example, the suffix vc16_amd64dll means that the PRC SDK was built for a 64-bit platform with the Visual C++ 2019 compiler.

Files are placed in the appropriate subfolder. The name of the subfolder depends on the specific platform, compiler version, and processor architecture.

Prc
All PRC SDK binary executable and library files. Files are placed in the appropriate subfolder. The name of the subfolder depends on the specific platform.
Examples
All This folder contains the source code of PRC SDK example applications. See the Use ODA PRC SDK Sample Applications topic for additional information about samples.
Exports
All Contains the source code of export PRC SDK modules.
Extensions
All Contains the source code of PRC SDK extension modules.
Include
All PRC SDK header files, which represent its public API.
ThirdParty
All Contains third-party files (source code, headers, binary files, etc.) the PRC SDK depends on.
CMakeLists.txt
Non-Windows A file that contains instructions for CMake utility that creates make-files for building PRC SDK binary files.
configure
Non-Windows A utility that generates make-files basing on a CMake configuration.
platform.txt
All A text file that contains the platform-dependent information:
  • Operating system.
  • Processor architecture (bit capacity).
  • Compiler version information.
  • ODA Platform version.
  • Build number.

Using Multiple Configurations

You can unpack different Windows archives into the same folder. This is convenient, for example, to build Release and Debug configurations using the same source, or even to have configurations linked dynamically and statically.

Unpacking other archives to the same folder will cause warnings because there are some duplicated files in both archives. This is ok; duplicated files are the same.

Important! Always use empty folders when upgrading ODA PRC SDK versions. Mixing files from different ODA PRC SDK versions may cause problems.

See also:

ODA PRC SDK Modules

Supported Functionality and Platforms

Copyright © 2002 – 2022. Open Design Alliance. All rights reserved.