8 Introduction
1.3 Releases and HALCON Versions
The term version has a second meaning: It denotes the HALCON major releases, e.g., HALCON 22.11.0.0 (HAL-
CON Progress), or HALCON 22.11.1.0 (HALCON Steady). For HALCON Steady there might also be so-called
maintenance releases like HALCON 22.11.2.0 or higher. The main differences between these two types of releases
are:
• Functionality
A new HALCON version always represents a major step in the functionality. This means that it contains a
significant number of new operators, but possibly also new functionality in HDevelop, e.g., new assistants.
Furthermore, the functionality of individual operators may be extended or operators have been sped up. Of
course, all currently known bugs in the preceding release will have been fixed.
In contrast, the main intention of a maintenance release is to fix all currently known bugs. Nevertheless, such
a release typically also brings some speed-ups and minor functional extensions.
• Compatibility
A new HALCON version is not downward compatible, with the following implications: First, you must
upgrade your HALCON license (see section 5.5 on page 32). Second, if you want to run applications created
with an older release under the new version, you must regenerate the applications, as the new HALCON
library is not binary compatible to the old one. The term ’applications’ includes also image acquisition
interfaces and extension packages you created yourself based on an older release. Note that a new version
may also be source-code incompatible in some parts, e.g., the signature of an operator or a class method may
have been changed. These changes are indicated in the release notes of the HALCON version. In such a
case, you must adapt the source code of your application before regenerating it.
In contrast, a maintenance release is in most cases fully downward compatible to its corresponding version.
This compatibility includes the license. Please note, however, that some maintenance releases may not be
fully binary or source-code compatible because of technical reasons. In such cases, the release notes will
contain corresponding warnings and describe how to proceed.
1.4 Supported Platforms and Minimum System Requirements
HALCON runs on Windows, Linux, and macOS. The minimum system requirements are listed in table 1.1; more
details follow below.
1.4.1 Platform-Specific HALCON Versions
For the operating systems listed in table 1.1 on page 9, platform-specific versions of HALCON’s executables and
libraries are provided. The name of the currently used version is stored in the environment variable HALCONARCH.
On Windows and Linux, HALCON uses AVX2-optimized code for many operators, when run on a machine that
supports AVX2.
Note that HALCON should also run on newer versions of the operating systems than the ones listed; however, we
cannot guarantee this.
HALCONARCH appears in several directory paths: Executable HALCON programs like hdevelop, and DLLs like
halcon.dll (Windows only), reside in %HALCONROOT%\bin\%HALCONARCH%. On Windows systems, this path is
therefore automatically included in the environment variable PATH; on a Linux system, you must include it in your
login script.
The libraries that you need for linking programs, e.g., halcon.lib (Windows) or libhalcon.so (Linux) reside
in the directory %HALCONROOT%\lib\%HALCONARCH%. On macOS, the corresponding libraries are organized as
frameworks in /Library/Frameworks.
Please note that when creating a 64-bit application, both the development computer and the computer on which the
application will run must be 64-bit platforms.
To create .NET applications under Linux, you need to install .NET Core or Mono.