This section has an in-depth explanation of the OWLNext library naming schemes introduced in 6.30 and later releases.
An OWLNext library name (e.g. "owl-7.0-v1900-x64-t.dll") consists of several parts delimited by hyphens.
{library name}-{version}-{compiler and version}-{target platform}-{build modes}.(dll|lib)
The parts are explained in detail in the sections below. The following notation is used:
The major changes to the library file naming convention were:
In 6.42.3 and 6.34.7, the use of compiler version numbers was updated. The compiler version number used within the library name is now based on the true version number of the compiler. For example, "owl-6.42-b710-x86-t.lib" is compiled by BCC32 version 7.10 (__BORLANDC__ == 0x710
). Also, we now use prefix "c" to denote the Clang-based compilers from Embarcadero (BCC32C, BCC64). For example, "owl-6.42-c710-x86-t.lib" is compiled by the 32-bit compiler BCC32C, and "owl-6.42-c710-x64-t.lib" is compiled by the 64-bit compiler BCC64. The prefix and version number used for older compilers remain unchanged.
Detailed documentation of the naming convention follows below.
coolprj|ocf|owl|owlext|owlfx
Library name:
For a detailed description of the libraries, see OWLNext Modules.
{M}.{m}[.{p}]
Major version, minor version and optional patch number, e.g. 6.33.1:
Note that only prereleases and beta versions include the patch number.
b(5|6|8|9|10|11|12|13|14|15|16|17|18|19|710|720|730|740|750|760|770)
Borland C++ and Borland-based Embarcadero C++ compiler (BCC32):
The number in parentheses above shows the minimum value of __BORLANDC__
as defined by the compiler.
c(700|710|720|730|740|750|760|770)
Clang-based Embarcadero C++ compilers (BCC32C, BCC64):
The number in parentheses above shows the minimum value of __BORLANDC__
as defined by the compiler.
cm770
Embarcadero C++ compilers based on Clang 15 (BCC64X):
The number in parentheses above shows the minimum value of __BORLANDC__
as defined by the compiler.
v(7|8|9|10|11|12|14|1900|1910|1920|1930|143)
Microsoft C++ compiler (CL):
The number in parentheses above shows the minimum value of _MSC_VER
as defined by the compiler.
Note that since version 8.0.1, OWLNext adopts the same convention as Owlet and uses the platform toolset version to identify the compiler and version. This matches the PlatformToolset property as used in MSBuild (e.g. "v143"), making it particularly useful for generating the target library file names in the build scripts.
See Supported Compilers for details about the supported compilers in the latest release, and see Stable Releases to discover which release introduced support for a particular compiler version.
x86|x64
The target platform processor architecture:
[5]
OWL 5 compatibility mode (see OWL Compatibility Modes). Without "5", the library uses the pure OWLNext API with corrections and removals of deprecated parts.
[d|g]
Debug mode:
s|t|v
Threading mode:
[u]
Unicode character set mode (wchar_t character type encoded as UTF-16). Without "u", the library uses ANSI code pages (char character type).
[i]
Dynamic link mode. Without "i", the library uses static linking.
In versions before 8.0.3, note that only the import library for a DLL contains the flag "i"; the DLL itself does not. Also, before 8.0.3, the DLL is placed in the subdirectory "bin", while the import library is placed in the subdirectory "lib". Since 8.0.3, both files are placed in "lib", and "bin" is no longer present.
The major changes to the library file naming convention were:
owl|ocf|owlex|owlfx
Library name:
{M}{mm}[{pp}]
Major, minor and optional patch number:
For example, version 6.31.1, will have version encoded as 631 if it is binary compatible with the base minor version, 6.31.0. If it has breaking changes, it will be encoded as 63101.
b(1|2|5|6|8|9|10|11|12|13|14)
Borland C++ and Borland-based Embarcadero C++ compiler (BCC32):
The number in parentheses above shows the minimum value of __BORLANDC__
as defined by the compiler.
v(6|7|8|9|10|11)
Microsoft C++ compiler (CL):
The number in parentheses above shows the minimum value of _MSC_VER
as defined by the compiler.
[d]
Debug mode; includes debug information and diagnostics (if compiled with the TRACE, WARN and CHECK macros). The library may also include CodeGuard instrumentalization code (for Borland C++ only).
s|t|v
Threading mode:
[u|us]
Character set mode:
[c(1|2|5)]
Compatibility mode (see OWL Compatibility Modes):
[i]
Import library (only the import library for a DLL contains the flag 'i'; the DLL itself does not).
Compiler pragma directives are used in the library header files to ensure the correct library is linked with the application. Hence you should not have to specify the link library explicitly when you build your application. You should just ensure that the location of the OWLNext libraries is in the library path specified to the tools.
Discussion: State of OCFNext — time to discontinue?
Discussion: facing issues in OWLNext 6.43.
Discussion: Errors in example code
Discussion: CoolEdit and C++Builder
Discussion: Unable to open file 'OWL-6.43-C720-X86-S.LIB'
Discussion: RAD Studio 10 Seatle
Discussion: Library naming convention for Embarcadero compilers
Feature Requests: #70
News: 2015/09/owlnext-6423-and-6347-updates-for-rad-studio-10-seattle
Wiki: Frequently_Asked_Questions
Wiki: Installing_OWLNext
Wiki: Installing_OWLNext_from_the_Code_Repository
Wiki: Knowledge_Base
Wiki: OWLMaker_3175
Wiki: OWLNext_Stable_Releases
Wiki: OWLNext_modules_description
Wiki: OWL_Compatibility_modes
Wiki: Supported_Compilers
Wiki: Using_the_Microsoft_Layer_for_Unicode_with_OWLNext
Wiki: Vidar_Hasfjord