123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- Building the Library
- ====================
- Building the Single-File Release
- --------------------------------
- Using the GCC compiler, the following calls build the library on Linux.
- .. code-block:: bash
- gcc -std=c99 -fPIC -c open62541.c
- gcc -shared open62541.o -o libopen62541.so
-
- Building with CMake on Ubuntu or Debian
- ---------------------------------------
- .. code-block:: bash
-
- sudo apt-get install git build-essential gcc pkg-config cmake python python-lxml
- # enable additional features
- sudo apt-get install libexpat1-dev # for XML-encodingi
- sudo apt-get install liburcu-dev # for multithreading
- sudo apt-get install check # for unit tests
- sudo apt-get install graphviz doxygen # for documentation generation
- cd open62541
- mkdir build
- cd build
- cmake ..
- make
- # select additional features
- ccmake ..
- make
- Building with CMake on Windows
- ------------------------------
- Here we explain the build process for Visual Studio. To build with MinGW, just
- replace the compiler selection in the call to CMake.
- - Download and install
- - Python 2.7.x (Python 3.x should work, too): https://python.org/downloads
- - Python lxml: https://pypi.python.org/pypi/lxml
- - CMake: http://www.cmake.org/cmake/resources/software.html
- - Microsoft Visual Studio 2015 Community Edition: https://www.visualstudio.com/products/visual-studio-community-vs
-
- - Download the open62541 sources (using git or as a zipfile from github)
- - Open a command shell (cmd) and run
- .. code-block:: bat
- cd <path-to>\open62541
- mkdir build
- cd build
- <path-to>\cmake.exe .. -G "Visual Studio 14 2015"
- :: You can use use cmake-gui for a graphical user-interface to select single features
- - Then open "build\open62541.sln" in Visual Studio 2015 and build as usual
- Building on OS X
- ----------------
- - Download and install
- - Xcode: https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12
- - Homebrew: http://brew.sh/
- - Pip (a package manager for python, may be preinstalled): ``sudo easy_install pip``
- - Run the following in a shell
- .. code-block:: bash
- brew install cmake
- brew install libxml2
- pip install lxml
- brew install check # for unit tests
- brew install userspace-rcu # for multi-threading support
- brew install graphviz doxygen # for documentation generation
- pip install sphinx # for documentation generation
- Follow Ubuntu instructions without the ``apt-get`` commands as these are taken care of by the above packages.
-
- Build Options
- -------------
- Generic CMake options
- ~~~~~~~~~~~~~~~~~~~~~
- **CMAKE_BUILD_TYPE**
- - RelWithDebInfo: -O2 optimization with debug symbols
- - Release: -O2 optimization without debug symbols
- - Debug: -O0 optimization with debug symbols
- - MinSizeRel: -Os optimization without debug symbols
- BUILD_* group
- ~~~~~~~~~~~~~
- By default only the shared object libopen62541.so or the library open62541.dll
- and open62541.dll.a resp. open62541.lib are build. Additional artifacts can be
- specified by the following options:
- **BUILD_DOCUMENTATION**
- Generate documentation with doxygen
- **BUILD_EXAMPLECLIENT**
- Compile example clients from client.c. There are a static and a dynamic binary client and client_static, respectively
- **BUILD_EXAMPLESERVER**
- Compile example server from server.c There are a static and a dynamic binary server and server_static, respectively
- **BUILD_UNIT_TESTS**
- Compile unit tests with Check framework. The tests can be executed with make test
- **BUILD_EXAMPLES**
- Compile specific examples from https://github.com/acplt/open62541/blob/master/examples/
- ENABLE_* group
- ~~~~~~~~~~~~~~
- This group contains build options related to the supported OPC UA features.
- **ENABLE_NODEMANAGEMENT**
- Node management services (adding and removing nodes and references) in server and client
- **ENABLE_AMALGAMATION**
- Compile a single-file release files open62541.c and open62541.h
- **ENABLE_COVERAGE**
- Measure the coverage of unit tests
- **ENABLE_EXTERNAL_NAMESPACES**
- Enable external namespaces in server
- **ENABLE_GNERATE_NAMESPACE0**
- Enable automatic generation of NS0
- **GENERATE_NAMESPACE0_FILE**
- File for NS0 generation from namespace0 folder. Default value is Opc.Ua.NodeSet2.xml
- **ENABLE_METHODCALL**
- Enable method calls in server and client
- **ENABLE_MULTITHREADING**
- Enable multi-threading support (experimental)
- **ENABLE_SUBSCRIPTONS**
- Enable subscriptions
- **GENERATE_SELFSIGNED**
- Generate a self-signed certificate for the server (openSSL required)
- EXTENSION_* group
- ~~~~~~~~~~~~~~~~~
- Extensions mark experimental extensions that are not compliant with IEC 62541 or
- other OPC UA clients
- **EXTENSION_STATELESS**
- Stateless service calls
- **EXTENSION_UDP**
- UDP network layer
- UA_* group
- ~~~~~~~~~~
- **UA_LOGLEVEL**
- The level of logging events that are reported
- - 600: Fatal and all below
- - 500: Error and all below
- - 400: Error and all below
- - 300: Info and all below
- - 200: Debug and all below
- - 100: Trace and all below
- C precompiler configuration options
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Options that are not inherited from the CMake configuration are defined in
- ua_config.h. Usually there is no need to adjust them.
- **UA_NON_LITTLEENDIAN_ARCHITECTURE**
- Big-endian or mixed endian platform
- **UA_MIXED_ENDIAN**
- Mixed-endian platform (e.g., ARM7TDMI)
- **UA_ALIGNED_MEMORY_ACCESS**
- Platform with aligned memory access only (some ARM processors, e.g. Cortex M3/M4 ARM7TDMI etc.)
|