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.
IFC 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:
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 IFC SDK Archive Contents.
IFC SDK binary archives are provided for all dynamic and static platforms supported by ODA Software.
The downloadable archive file names consist of the IFC SDK prefix (IFC) and platform-specific information (listed below).
Signature | Description |
---|---|
Compiler Version |
|
Platform |
|
Library Type |
|
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:
And there are three types of CRT libraries:
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 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:
mt
suffix
in their names. For example, ifc_vc16mt.zip
contains the IFC SDK
archive with Static CRT, built with Microsoft Visual Studio 2019. /MT
switch to build a custom
application.
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.
/MD
switch to build a custom
application.
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. /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:
/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.
MSVCRT.lib
, which contains code to resolve external references. MSVCR90.DLL
. This file must be available
at runtime.
/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 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.
Signature | Description |
---|---|
Platform |
|
GNU Compiler Collection Version |
|
Library Type |
|
Signature | Description |
---|---|
Platform |
|
Version number of macOS that the libraries are built for |
|
Library Type |
|
Item (folder or file) | Operating system | Description | |
---|---|---|---|
bin |
Non-Windows | IFC 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 IFC SDK executable and library files. | |
exe |
Windows | IFC 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. | |
Ifc |
All | IFC 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 IFC SDK example applications. See the Use ODA IFC SDK Sample Applications topic for additional information about samples. | |
Extensions |
All | Contains the source code of IFC SDK extension modules. | |
Include |
All | IFC SDK header files, which represent its public API. | |
Kernel |
All | IFC SDK header files from the Kernel SDK. This folder also contains the source code for Kernel SDK extensions used in the IFC SDK. | |
KernelBase |
All | IFC SDK header files from the base part of the Kernel SDK. | |
lib |
All | IFC SDK library files and other binary libraries the IFC SDK depends on. | |
Platforms |
Win |
Project files generated with CMake for the Windows platform.
Contains two solutions:
Files are placed in the appropriate subfolder. The name of the subfolder depends on the specific platform, compiler version, and processor architecture. |
|
ThirdParty |
All | Contains third-party files (source code, headers, binary files, etc.) the IFC SDK depends on. | |
CMakeLists.txt |
Non-Windows | A file that contains instructions for CMake utility that creates make-files for building IFC 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:
|
You can unpack different archives for the Windows platform 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 okay; duplicated files are the same.
Important! Always use empty folders when upgrading IFC SDK versions. Mixing files from different IFC SDK versions may cause problems.
Create Your First IFC SDK Application
Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.
|