You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,9 +22,9 @@ For usage examples, please refer to the official documentation:
22
22
## Installation
23
23
24
24
For detailed installation instructions, please refer to the official documentation:
25
-
-[Setting up OSI](https://opensimulationinterface.github.io/osi-documentation/#_setting_up_osi)
26
-
-[Installing _protobuf_ for static / dynamic linking](https://opensimulationinterface.github.io/osi-documentation/#_installing_prerequisites)
27
-
-[Installing OSI for C++ on Linux](https://opensimulationinterface.github.io/osi-documentation/#_installing_osi_for_c_on_linux)
28
-
-[Installing OSI for Python on Linux](https://opensimulationinterface.github.io/osi-documentation/#_installing_osi_for_python_on_linux)
29
-
-[Installing OSI for C++ on Windows](https://opensimulationinterface.github.io/osi-documentation/#_installing_osi_for_c_on_windows)
30
-
-[Installing OSI for Python on Windows](https://opensimulationinterface.github.io/osi-documentation/#_installing_osi_for_python_on_windows)
25
+
-[Setting up OSI](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/setup/setting_up_osi.html)
26
+
-[Installing _protobuf_ for static / dynamic linking](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/setup/installing_prerequisites.html)
27
+
-[Installing OSI for C++ on Linux](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/setup/installing_linux_cpp.html)
28
+
-[Installing OSI for Python on Linux](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/setup/installing_linux_python.html)
29
+
-[Installing OSI for C++ on Windows](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/setup/installing_windows_cpp.html)
30
+
-[Installing OSI for Python on Windows](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/interface/setup/installing_windows_python.html)
Copy file name to clipboardExpand all lines: doc/setup/installing_prerequisites.adoc
+18-17Lines changed: 18 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,32 +2,32 @@ ifndef::include-only-once[]
2
2
:root-path: ../
3
3
include::{root-path}_config.adoc[]
4
4
endif::[]
5
-
6
-
= Installing _protobuf_ for static / dynamic linking
5
+
[#top-installing-osi-prerequisits]
6
+
= Installing protobuf for static / dynamic linking
7
7
8
8
== Prerequisites
9
9
10
-
* You have installed _cmake_ (version 3.10.2 or higher).
11
-
* You must have super user privileges.
10
+
* You have installed _cmake_ (version 3.10.2 or higher)
11
+
* You must have superuser privileges
12
12
13
-
Static linking is the recommended way to package OSI FMUs for sharing with others to be integrated in a co-simulation: They should have minimal external dependencies, in order to ensure maximum portability.
14
-
Fo other use cases like first trials to get started with OSI, dynamic linking could be an option, as well.
13
+
Static linking is the recommended way to package OSI FMUs for sharing with others to be integrated in a co-simulation: They should have minimal external dependencies in order to ensure maximum portability.
14
+
For other use cases like first trials to get started with OSI, dynamic linking could be an option as well.
15
15
16
16
== Windows
17
17
18
18
**Dynamic Linking (NOT RECOMMENDED)**
19
19
20
-
Since on windows symbols are not exported per default it can be kind of annoying to deal with this during _protobuf_ header generation (see for example https://groups.google.com/g/protobuf/c/PDR1bqRazts).
21
-
So basically thats one more reason to use static linking.
20
+
Since on Windows symbols are not exported per default, it can be kind of annoying to deal with this during _protobuf_ header generation (see for example https://groups.google.com/g/protobuf/c/PDR1bqRazts).
21
+
That is an important reason to use static linking.
22
22
23
23
**Static Linking**
24
24
25
25
Static linking might require to manually build _protobuf_.
26
-
Its important to notice that on windows you can also specify how to link against the C runtime.
27
-
Basically this can be set in CMake e.g. https://cmake.org/cmake/help/latest/prop_tgt/MSVC_RUNTIME_LIBRARY.html
26
+
It is important to notice that on Windows you can also specify how to link against the C runtime.
27
+
Basically, this can be set in CMake, e.g. https://cmake.org/cmake/help/latest/prop_tgt/MSVC_RUNTIME_LIBRARY.html
28
28
29
-
Therefore, it could make sense to still dynamically link against the C Runtime when statically linking _protobuf_ / OSI.
30
-
(This is important e.g. when building shared libraries, since a static C runtime will create an isolated heap for your dll, which can lead to segfaults depending on what you expose on your public interfaces.)
29
+
Therefore, it could make sense to still dynamically link against the C Runtime when statically linking _protobuf_ / OSI.
30
+
(This is important e.g. when building shared libraries, since a static C runtime will create an isolated heap for your dll, which can lead to segfaults depending on what you expose on your public interfaces.)
31
31
32
32
The easiest way to achieve static linking on Windows without setting all the stuff manually in Cmake and building _protobuf_ is to actually use vcpkg:
and in the CMakeLists of the OSI project, `LINK_WITH_SHARED_OSI` has to be enabled.
57
+
In the CMakeLists of the OSI project, `LINK_WITH_SHARED_OSI` has to be enabled.
58
58
59
59
**Static linking**
60
60
61
61
A common error here is to just install _protobuf_ with apt and link against it.
62
62
This means that your OSI is build statically but still linking dynamically against _protobuf_.
63
-
Here, again either _protobuf_ has to build statically from source or some solution e.g. vcpkg needs to be utilized. We recommend the following (as in the README of the OSI project):
63
+
Here, again either _protobuf_ has to build statically from source or some solution e.g. vcpkg needs to be utilized.
64
+
We recommend the following (as in the README of the OSI project):
64
65
65
66
Install _protobuf_ (version 3.0.0 or higher) from source with `CXXFLAGS="-fPIC"` to allow static linking of your OSI FMUs (replace <version> with preferred release):
0 commit comments