Close

Relief for ODA Team in Ukraine

Learn more
ODA IFC SDK
Archive Filenames

The downloadable archive filenames consist of the IFC SDK prefix (IFC) and platform-specific information for:

Archives for Windows

Signature Description
Compiler Version
  • Microsoft Visual Studio:
    • vc14 — Microsoft Visual C++ 2015.
    • vc14xp — Microsoft Visual C++ 2015 with WinXP support.
    • vc15 — Microsoft Visual C++ 2017.
    • vc16 — Microsoft Visual C++ 2019.
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).
  • rwd — Release built with runtime debug information (useful for reproducing certain types of runtime problems).

Choose a Downloadable Archive for Windows Platforms

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

Library Type and Configuration Compiler Switch CRT Library Filename Macro Names
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 to support each of these reusable CRT library types:

  • Downloadable archives with the Static CRT contain the mt suffix in their names. For example, ifc_vc16mt.zip contains the IFC SDK archive with a Static CRT built with Microsoft Visual Studio 2019.

    This IFC SDK configuration requires that you use an /MT switch to build a custom application.
  • Downloadable archives with the Dynamic Link Multi-Threaded CRT contain the dll suffix in their names. For example, Ifc_vc19dll.zip contains the IFC SDK archive with the Dynamic Link Multi-Threaded CRT built with Microsoft Visual Studio 2019.
    This IFC SDK configuration requires that you use an /MD switch to build a custom application.
  • Downloadable archives with the Static/Dynamic CRT contain the md suffix in their names. For example, Ifc_vc11md.zip contains the IFC SDK archive with both Static Multi-Threaded and Dynamic Link Multi-Threaded CRT, built with Microsoft Visual Studio 2012.
    This IFC SDK 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.

When using compiler switches to build 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, which contains code to resolve external references.

    Actual working code is contained in MSVCR90.DLL. This file must be available at runtime.
  • 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 an IFC SDK downloadable archive is the same question as 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
  • 4.8 — GCC version 4.8.
  • 4.9 — GCC version 4.9.
  • 5.2 — GCC version 5.2.
  • 5.3 — GCC version 5.3.
  • 6.3 — GCC version 6.3.
  • 7.2 — GCC version 7.2.
  • 8.3 — GCC version 8.3.
Library Type
  • dll — Shared libraries (*.so files).
  • pic — Static libraries (*.a files) compiled with the Position Independent Code option.
  • If dll or pic are not specified — Static libraries (*.a files).

Archives for Macintosh

Signature Description
Platform
  • macOsX_x64 — Libraries built for the 64-bit Macintosh platform.
Version number of macOS that the libraries are built for
  • 10.12 — Libraries for macOs version 10.12.
  • 10.13 — Libraries for macOs version 10.13.
  • 10.14 — Libraries for macOs version 10.14.
  • 10.15 — Libraries for macOs version 10.15.
Library Type
  • dll — Shared libraries (*.so files).
  • pic — Static libraries (*.a files) compiled with the Position Independent Code option.
  • If dll or pic are not specified — Static libraries (*.a files).

See Also

Archive Contents

Download IFC SDK

Activating ODA Products

Create Your First IFC SDK Application

Supported Platforms

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