Description
Greetings,
I was debugging a problem of undefined linking references to BT in my ROS2 Foxy project, where I tried to use ros-foxy-behaviortree-cpp-v3
from the official ROS2 apt repository for Ubuntu 20.04 ( http://packages.ros.org/ros2/ubuntu/dists/focal/main/binary-amd64/Packages , find "Package: ros-foxy-behaviortree-cpp-v3" ). Here is a fragment of the linker output:
...
wait_for_variable.cpp:(.text+0x48c): undefined reference to `BT::CoroActionNode::setStatusRunningAndYield()'
/usr/bin/ld: wait_for_variable.cpp:(.text+0x59d): undefined reference to `BT::CoroActionNode::setStatusRunningAndYield()'
/usr/bin/ld: wait_for_variable.cpp:(.text+0x617): undefined reference to `BT::CoroActionNode::setStatusRunningAndYield()'
/usr/bin/ld: wait_for_variable.cpp:(.text+0x6c9): undefined reference to `BT::CoroActionNode::setStatusRunningAndYield()'
/usr/bin/ld: wait_for_variable.cpp:(.text+0x762): undefined reference to `BT::CoroActionNode::setStatusRunningAndYield()'
...
I have managed to overcome this issue by cloning the current master branch (278e60e). Of course, such solution is inconvenient in terms of freezing dependencies for the project. I looked further into the tags and I have found the potential source of the problem: manually building the tag 3.5.6 resulted in successful compilation. On the other hand the latest official release ( https://github.com/BehaviorTree/BehaviorTree.CPP/releases ) the tag 3.3.0 failed the build process. I speculate that the deb package in the ROS2 repository is actually older than 3.5.6 and it is probably based on the "latest release" 3.3.0 .
Regardless of my hypothesis I would like to highlighted this problem.
Thanks in advance for looking into this issue.
Maciej