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
TL;DR:
This error occurs on Linux when building both plugin (zplugin-dds ) and standalone executable (zenoh-bridge-dds ) at the same time with the cargo build command.
You must build each independently as per README instructions:
cargo build --release -p zplugin-dds
cargo build --release -p zenoh-bridge-dds
I will improve the README to emphasis this.
Root cause of the issue:
To be dynamically loaded by the Zenoh router (zenohd), a Zenoh plugin must defines a load_plugin() operation in C representation and non-mangled.
In the zenoh-bridge-dds we rather statically link 2 plugins (zplugin-dds and zplugin-rest). If those plugins both define the same non-mangled load_plugin() operation,ld reports a conflict because of multiple definitions.
Therefore, in all plugins Cargo.toml, we define a no_mangle feature (active by default) that can can be deactivated when statically linking several plugins in a same bin. zenoh-bridge-dds/Cargo.toml well deactivates this feature. But unfortunately, when building both zplugin-dds and zenoh-bridge-dds together, Cargo build zplugin-dds only once and with this no_mangle feature enabled.
TL;DR: This error occurs on Linux when building both plugin (zplugin-dds ) and standalone executable (zenoh-bridge-dds ) at the same time with the cargo build command. You must build each independently as per README instructions:
* cargo build --release -p zplugin-dds
* cargo build --release -p zenoh-bridge-dds
Describe the bug
To reproduce
System info
The text was updated successfully, but these errors were encountered: