The PI-API is primarily a library of routines for communicating with PI Servers. Earlier versions of the library contained primarily C code. Compiling and linking C programs was straightforward. Version 1.2 of the API makes considerable use of C++ code internally though the exported routines are still written in C. Use of C++ is becoming more popular, but a considerable percentage of customers using the PI-API do not have access to a C++ compiler or linker on all their systems. It is therefore still important to be able to build C-only programs that can successfully link and run with the PI-API library.
Certain features of C++ require special handling in a library. Static instances of classes used by the library must be created prior to program startup. Many C compilers and linkers do not handle this creation in their native mode, and special steps must be taken to support this initialization. To this end, system libraries and utilities are redistributed and installed with the PI-API to allow the end user to build working programs. These files are only installed if they are not found in the expected location on the target system.
The procedure for successfully linking to the PI-API on supported platforms is described in the topic for each platform.