Thanks to visit codestin.com
Credit goes to github.com

Skip to content

TinyXML symbols exported from behavior tree library #4

Closed
@mjeronimo

Description

@mjeronimo

With the current build scripts, the tinyxml2 symbols are exported from the behavior_tree_core shared object. The ROS2 middleware also embeds the tinyxml2 library and exports the symbols as well. The ROS2 build will use the tinyxml2 library installed on the target platform, while BehaviorTree.CPP will use its own version (the tinyxml2 source is with the BT library code). If these libraries are different versions only one tinyxml2 version will be found when linking a ROS2 executable. Therefore, one the ROS2 middleware or BT library will be using the wrong version.

TinyXML2 supports the gcc's visibility attribute. I made the following change to work around this:

https://github.com/mjeronimo/BehaviorTree.CPP/commit/f059c2035eda28a9688bf063a428fa2d44cfa9e7

With this, by default, the tinyxml2 symbols will not be exported and will therefore, not conflict.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions