ANSI C Based OPC UA Client/Server/PubSub SDK
1.9.1.442
|
This SDK is designed to be platform independent, i.e. it is not bound to a particular operating system or processor architecture. To achieve this, all platform dependent code is contained a so-called platform layer, an abstraction layer that encompasses platform specific files. Thus, for porting the SDK to a new platform, only the platform layer needs to be changed/adopted/rewritten, all the rest of the SDK (including the client and/or server application) remains unchanged for all platforms.
Several platform layers are already available for our SDKs. We divide these platform layers into three categories:
Binary editions of our SDKs are only available for these two actively supported platforms. These binary editions contain files that are precompiled for a certain platform with a certain compiler version and can only be used on this particular platform/compiler combination. You will need the source edition of the SDK to port it another platform and/or use it with different compilers.
The Windows version is generated and tested with Visual Studio 2010 Service Pack 1 and Visual Studio 2012 Service Pack 4; hence the setup contains Visual Studio projects for the respective version and third-party components (OpenSSL and LibXml2) that are compiled with the respective compiler.
However, due to the portable design of the SDKs, it is possible to build the source edition of the SDKs with different compilers. The Visual Studio projects are only delivered for your convenience. In our build process, we are using the portable Makefile generator CMake to generate for all supported platforms. CMake supports a large variety of different platforms, thus chances are good that you can use CMake to generate projects for the IDE of your choice. Keep in mind that if you rebuild an SDK, you will have to recompile all precompiled components (UaStack, OpenSSL and LibXml2) with your compiler and bind them against the same C runtime.
This will be described on the following pages.
Linux versions always use the CMake based compilation approach and come with a simple bash script (“build.sh”) to simplify building. This script is actually doing the individual build steps (“cmake”, “make”, “make install”) for you. The third-party components are not distributed with our Linux SDKs, because they are provided by most Linux distributions. You can use the delivered CMake files to recompile the source edition of the SDK with a different GCC compiler version (e.g. a 32 bit compiler) or to cross compile the SDK for embedded systems.
In this documentation, you will find instructions about how to compile for different platforms and compilers, but we will not explain CMake in detail. For the interested reader we recommend the CMake tutorial and the CMake documentation to gain more insight into CMake.