Talker example issue with Beta 1

You could post the output in a gist file.

If the list contains one file like <prefix>/share/*/environment/library_path.sh the LD_LIBRARY_PATH should be set to <prefix>/lib (and <prefix>/lib/x86_64-linux-gnu). Can you please check for that as well as the resulting LD_LIBRARY_PATH.

Hi Dirk,

The output does contain library_path.sh in the following files:

. “/path/install/share/console_bridge/environment/library_path.sh”
. “/path/install/share/fastcdr/environment/library_path.sh”
. “/path/install/share/fastrtps/environment/library_path.sh”
. “/path/install/share/gmock_vendor/environment/library_path.sh”
. “/path/install/share/gtest_vendor/environment/library_path.sh”
. “/path/install/share/ament_index_cpp/environment/library_path.sh”
. “/path/install/share/poco_vendor/environment/library_path.sh”
. “/path/install/share/class_loader/environment/library_path.sh”
. “/path/install/share/rmw_connext_shared_cpp/environment/library_path.sh”
. “/path/install/share/rosidl_generator_c/environment/library_path.sh”
. “/path/install/share/rmw/environment/library_path.sh”
. “/path/install/share/rosidl_typesupport_connext_cpp/environment/library_path.sh”
. “/path/install/share/rosidl_typesupport_connext_c/environment/library_path.sh”
. “/path/install/share/rosidl_typesupport_cpp/environment/library_path.sh”
. “/path/install/share/rmw_connext_cpp/environment/library_path.sh”
. “/path/install/share/rosidl_typesupport_introspection_c/environment/library_path.sh”
. “/path/install/share/rosidl_typesupport_introspection_cpp/environment/library_path.sh”
. “/path/install/share/rmw_fastrtps_cpp/environment/library_path.sh”
. “/path/install/share/builtin_interfaces/environment/library_path.sh”
. “/path/install/share/example_interfaces/environment/library_path.sh”
. “/path/install/share/lifecycle_msgs/environment/library_path.sh”
. “/path/install/share/pendulum_msgs/environment/library_path.sh”
. “/path/install/share/rcl_interfaces/environment/library_path.sh”
. “/path/install/share/rttest/environment/library_path.sh”
. “/path/install/share/std_msgs/environment/library_path.sh”
. “/path/install/share/actionlib_msgs/environment/library_path.sh”
. “/path/install/share/geometry_msgs/environment/library_path.sh”
. “/path/install/share/diagnostic_msgs/environment/library_path.sh”
. “/path/install/share/nav_msgs/environment/library_path.sh”
. “/path/install/share/rcl/environment/library_path.sh”
. “/path/install/share/rcl_lifecycle/environment/library_path.sh”
. “/path/install/share/rclcpp/environment/library_path.sh”
. “/path/install/share/composition/environment/library_path.sh”
. “/path/install/share/rclcpp_lifecycle/environment/library_path.sh”
. “/path/install/share/sensor_msgs/environment/library_path.sh”
. “/path/install/share/shape_msgs/environment/library_path.sh”
. “/path/install/share/std_srvs/environment/library_path.sh”
. “/path/install/share/stereo_msgs/environment/library_path.sh”
. “/path/install/share/tf2/environment/library_path.sh”
. “/path/install/share/tf2_msgs/environment/library_path.sh”
. “/path/install/share/tf2_ros/environment/library_path.sh”
. “/path/install/share/tlsf/environment/library_path.sh”
. “/path/install/share/trajectory_msgs/environment/library_path.sh”
. “/path/install/share/visualization_msgs/environment/library_path.sh”

When I source using the ./local_setup.bash, the result is
$ echo $LD_LIBRARY_PATH
/opt/rti_connext_dds-5.2.5/lib:/opt/rti_connext_dds-5.2.5/lib/x64Linux3.xgcc4.6.3:/opt/rti_connext_dds-5.2.5/lib/java

When I source using source ./local_setup,bash (same with source local_setup.bash)
$ echo $LD_LIBRARY_PATH
/path/install/lib/x86_64-linux-gnu:/path/install/lib:/opt/rti_connext_dds-5.2.5/lib:/opt/rti_connext_dds-5.2.5/lib/x64Linux3.xgcc4.6.3:/opt/rti_connext_dds-5.2.5/lib/java

I ran src/ament/ament_tools/scripts/ament.py test again.
build/osrf_pycommon/test_results/osrf_pycommon/nosetests.xunit.xml: 32 tests, 0 skipped, 0 errors, 1 failures
Summary: 9962 tests, 0 errors, 1 failures, 24 skipped

I believe you stated that all tests pass on your side?

Happy New Year!

Thanks
Vince

Can you please post the content of one of these files (e.g. share/ament_index_cpp/environment/library_path.sh). Just to make sure it extends the environment variable as it is supposed to.

In the list of sourced files is there an entry for RTIs Connext? Maybe that one overwrites the environment variable?

The failing test in osrf_pycommon happens the same for me. Don’t worry about that one.

Happy New Year for you too!

Hi Dirk,

# copied from ament_package/template/environment_hook/library_path.sh

# detect if running on Darwin platform
_UNAME=`uname -s`
_IS_DARWIN=0
if [ "$_UNAME" = "Darwin" ]; then
  _IS_DARWIN=1
fi
unset _UNAME

if [ $_IS_DARWIN -eq 0 ]; then
  ament_prepend_unique_value LD_LIBRARY_PATH "$AMENT_CURRENT_PREFIX/lib"
else
  ament_prepend_unique_value DYLD_LIBRARY_PATH "$AMENT_CURRENT_PREFIX/lib"
fi
unset _IS_DARWIN

It seems that all the files are copied from:

copied from ament_package/template/environment_hook/library_path.sh

when I sampled from the list. The only files that I see are from rmw_connext_cpp and rmw_connext_shared_cpp and both are same as file above.

Glad we have same results on tests.

Thanks
Vince

Everything looks correct. I can only recommend to add debug output to one of the library_path.sh files to trace what is happening. Maybe also to the ament_prepend_unique_value function. For some reason it is not changing the environment variable for you the way it should.

Had the same problem on the last release on Linux Mint (Ubuntu 16):
~/ros2_ws $ build/demo_nodes_cpp/listener
terminate called after throwing an instance of 'std::runtime_error’
what(): could not create publisher: type support not from this implementation, at /home/mc/ros2_ws/src/ros2/rmw_fastrtps/rmw_fastrtps_cpp/src/functions.cpp:782, at /home/mc/ros2_ws/src/ros2/rcl/rcl/src/rcl/publisher.c:81
Aborted

LD_LIBRARY_PATH is not set after execution of install/local_setup.bash
I set it manually as advised above
export LD_LIBRARY_PATH=/home/mc/ros2_ws/install/lib

It solves the problem.
Thank you.