The downloadable archive filenames consist of the IFC SDK prefix (IFC) and platform-specific information for:
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 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:
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. /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 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.
Signature | Description |
---|---|
Platform |
|
GNU Compiler Collection Version |
|
Library Type |
|
Signature | Description |
---|---|
Platform |
|
Version number of macOS that the libraries are built for |
|
Library Type |
|
Create Your First IFC SDK Application
Copyright © 2002 – 2021. Open Design Alliance. All rights reserved.
|