The most recent release can be downloaded from
Member Downloads
.
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:
-
Create a directory on your computer for the ODA PRC SDK
libraries, header files, and documentation.
-
Download the ODA PRC SDK libraries for your operating system and compiler.
-
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:
-
PRC_vc*_ex — includes example application, extensions and
import/export functionality.
-
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 – 2020. Open Design Alliance. All rights reserved.
|
|