dusty-nv / jetson-containers

Machine Learning Containers for NVIDIA Jetson and JetPack-L4T
MIT License
2.3k stars 474 forks source link

Unable to build microROS_agent inside docker container #214

Open usaotearoa opened 1 year ago

usaotearoa commented 1 year ago

Hi Dusty!

First of all, thank you for all the efforts you put into building these containers, the easy-to-follow tutorials, and all the community engagement you do! I'm really grateful for such a good source of information.

For weeks now, I have been struggling to get the Jetson Nano Developer Kit (4GB, B01 with 2 MIPI-ports) to work properly. I'm trying to get a docker container with ROS2 running. Ideally that would be Humble, but I guess I will have to get by with Foxy, as Galactic is EOL.

This has been tried on multiple Jetson Nano Developer Kits, as I have two of them. Here are the steps outlined of what has been done:

REGULAR DOCKER IMAGE WORKFLOW Flash the device with the latest sdkmanager to JetPack 4.6.3. (I have also tried flashing it to 32.7.1, but the steps below still fail. If I opt for DeepStream or not also does not change the outcome.)

After the device is finished, log in and run apt-get update && upgrade (In some trials, this step was omitted and yet the following procedure still failed.) Clone the GitHub repository (git clone https://github.com/dusty-nv/jetson-containers.git) Ensure "default-runtime": "nvidia" is entered in the /etc/docker/daemon.json, properly formatted and comma added after the prior entry! Then run one of the following scripts:

    scripts/docker_run.sh -c dustynv/ros:foxy-ros-base-l4t-r32.7.1
    scripts/docker_run.sh -c dustynv/ros:foxy-pytorch-l4t-r32.7.1

This fails because I'm already on 32.7.3.

Modified the l4t_version.sh to fake the output to show R32.7.1 (Even if this step is not needed due to being on Jetpack 4.6.1 and R32.7.1, as mentioned above, the process fails)

Then attempt to run the docker command from step 5 again, and it actually works, loading the docker. Following the tutorial for microROS for Teensy (https://micro.ros.org/docs/tutorials/core/teensy_with_arduino/), the process fails at the following step:

# Build step
ros2 run micro_ros_setup build_agent.sh

Also, the very first source command to source the environment is wrong. It is:

# Source the ROS 2 installation
source /opt/ros/foxy/setup.bash

But it should be:

source /opt/ros/foxy/install/setup.bash

However, despite this small oversight, the agent build still fails.

I know this is not related to the Jetpack version, as mentioned it fails with 4.6.1 as well. At some point, I was able to get it working, but I'm unsure what I have done differently and why it suddenly wouldn't work anymore. Output logs are to follow below. BUILD DOCKER IMAGE WORKFLOW

Then I decided to build the docker container from source, as I thought maybe there is something intrinsically different in my system, and building from source will sort all dependencies properly. This has been tried under the following circumstances:

  1. With the device flashed to JetPack 4.6.1 (R32.7.1) - Directly after flashing (no apt-get update && upgrade)
  2. With the device flashed to JetPack 4.6.1 (R32.7.1) - With apt-get update && upgrade
  3. With the device flashed to JetPack 4.6.3 (R32.7.2) and the modified l4t_version.sh to fake the output to show R32.7.1 - Directly after flashing (no apt-get update && upgrade)
  4. With the device flashed to JetPack 4.6.3 (R32.7.2) and the modified l4t_version.sh to fake the output to show R32.7.1 - With apt-get update && upgrade

No matter what I attempt to do, the build process also fails.

So to summarize, my situation is as follows:

Unable to get the microROS agent to build (ros2 run micro_ros_setup build_agent.sh)
Unable to build the docker image from source

Output logs are to follow below.

Thank you for your time!

Here the entire output from an attempt on a freshly flashed Jetson Nano with Jetpack 4.6.1 (R32.7.1). entire trace below: Because I have done this process so many times and am getting tired of typing / copying and pasting all commands, I have thrown them into a shell script. But if I do it manually of with the script, the outcome is the same. Here the script:

#! /bin/bash

# VARIABLES:
# ----------
DIRECTORY="microros_ws"
ENV_SETUP="setup.bash"

# 1. check if directory exists:
if [ ! -d "$DIRECTORY" ]; then
  echo "$DIRECTORY does not exist. Creating"
  mkdir $DIRECTORY
else
  echo "$DIRECTORY does exist."
fi

# 2. enter the directory
cd $DIRECTORY
pwd

# Source the ROS 2 installation
if [ -e /opt/ros/$ROS_DISTRO/setup.bash ]; then
  echo "setup.bash found at path 1"
  source /opt/ros/$ROS_DISTRO/setup.bash
elif [ -e /opt/ros/$ROS_DISTRO/install/setup.bash ]; then
  echo "setup.bash found at path 2"
  source /opt/ros/$ROS_DISTRO/install/setup.bash
fi

# clone microROS repository
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

# Update dependencies using rosdep
sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y

# Install pip
sudo apt-get install python3-pip

# Build micro-ROS tools and source them
colcon build
source install/local_setup.bash

# Download micro-ROS agent packages
ros2 run micro_ros_setup create_agent_ws.sh

# Build step
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash

And here the terminal trace from executing the script:

root@jetson2:/# nano microROS_agent.sh
root@jetson2:/# clear

root@jetson2:/# chmod 755 microROS_agent.sh 
root@jetson2:/# ./microROS_agent.sh 
microros_ws does not exist. Creating
/microros_ws
setup.bash found at path 2
Cloning into 'src/micro_ros_setup'...
remote: Enumerating objects: 3385, done.
remote: Counting objects: 100% (1180/1180), done.
remote: Compressing objects: 100% (507/507), done.
remote: Total 3385 (delta 843), reused 957 (delta 666), pack-reused 2205
Receiving objects: 100% (3385/3385), 794.48 KiB | 2.47 MiB/s, done.
Resolving deltas: 100% (2341/2341), done.
Hit:1 http://packages.ros.org/ros2/ubuntu bionic InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports bionic InRelease                                       
Hit:3 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease                               
Hit:4 https://apt.kitware.com/ubuntu bionic InRelease                                            
Hit:5 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease   
Hit:6 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease
Reading package lists... Done                      
Building dependency tree       
Reading state information... Done
183 packages can be upgraded. Run 'apt list --upgradable' to see them.
reading in sources list data from /etc/ros/rosdep/sources.list.d
Warning: running 'rosdep update' as root is not recommended.
  You should run 'sudo rosdep fix-permissions' and invoke 'rosdep update' again without sudo.
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Add distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /root/.ros/rosdep/sources.cache
executing command [apt-get install -y clang-tidy]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  clang-tidy-6.0 libllvm6.0
The following NEW packages will be installed:
  clang-tidy clang-tidy-6.0 libllvm6.0
0 upgraded, 3 newly installed, 0 to remove and 183 not upgraded.
Need to get 18.5 MB of archives.
After this operation, 78.2 MB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libllvm6.0 arm64 1:6.0-1ubuntu2 [12.5 MB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/universe arm64 clang-tidy-6.0 arm64 1:6.0-1ubuntu2 [5,916 kB]                    
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 clang-tidy arm64 1:6.0-41~exp5~ubuntu1 [2,984 B]          
Fetched 18.5 MB in 15s (1,210 kB/s)                                                                                                
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libllvm6.0:arm64.
(Reading database ... 81206 files and directories currently installed.)
Preparing to unpack .../libllvm6.0_1%3a6.0-1ubuntu2_arm64.deb ...
Unpacking libllvm6.0:arm64 (1:6.0-1ubuntu2) ...
Selecting previously unselected package clang-tidy-6.0.
Preparing to unpack .../clang-tidy-6.0_1%3a6.0-1ubuntu2_arm64.deb ...
Unpacking clang-tidy-6.0 (1:6.0-1ubuntu2) ...
Selecting previously unselected package clang-tidy.
Preparing to unpack .../clang-tidy_1%3a6.0-41~exp5~ubuntu1_arm64.deb ...
Unpacking clang-tidy (1:6.0-41~exp5~ubuntu1) ...
Setting up libllvm6.0:arm64 (1:6.0-1ubuntu2) ...
Setting up clang-tidy-6.0 (1:6.0-1ubuntu2) ...
Setting up clang-tidy (1:6.0-41~exp5~ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvcuvidvideocodec.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcapture.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvpva.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvisp_utils.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcuvidv4l2.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.418.00 is empty, not checked.
executing command [apt-get install -y flex]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libfl-dev libfl2
Suggested packages:
  bison flex-doc
The following NEW packages will be installed:
  flex libfl-dev libfl2
0 upgraded, 3 newly installed, 0 to remove and 183 not upgraded.
Need to get 320 kB of archives.
After this operation, 1,129 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 flex arm64 2.6.4-6 [302 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libfl2 arm64 2.6.4-6 [11.3 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libfl-dev arm64 2.6.4-6 [6,232 B]
Fetched 320 kB in 2s (137 kB/s)      
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package flex.
(Reading database ... 81237 files and directories currently installed.)
Preparing to unpack .../flex_2.6.4-6_arm64.deb ...
Unpacking flex (2.6.4-6) ...
Selecting previously unselected package libfl2:arm64.
Preparing to unpack .../libfl2_2.6.4-6_arm64.deb ...
Unpacking libfl2:arm64 (2.6.4-6) ...
Selecting previously unselected package libfl-dev:arm64.
Preparing to unpack .../libfl-dev_2.6.4-6_arm64.deb ...
Unpacking libfl-dev:arm64 (2.6.4-6) ...
Setting up flex (2.6.4-6) ...
Setting up libfl2:arm64 (2.6.4-6) ...
Setting up libfl-dev:arm64 (2.6.4-6) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1.4) ...
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvcuvidvideocodec.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.418.00 is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcapture.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvpva.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvisp_utils.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvcuvidv4l2.so is empty, not checked.
/sbin/ldconfig.real: File /usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.418.00 is empty, not checked.
executing command [apt-get install -y bison]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libbison-dev
Suggested packages:
  bison-doc
The following NEW packages will be installed:
  bison libbison-dev
0 upgraded, 2 newly installed, 0 to remove and 183 not upgraded.
Need to get 568 kB of archives.
After this operation, 1,741 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 libbison-dev arm64 2:3.0.4.dfsg-1build1 [339 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 bison arm64 2:3.0.4.dfsg-1build1 [230 kB]
Fetched 568 kB in 3s (227 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libbison-dev:arm64.
(Reading database ... 81327 files and directories currently installed.)
Preparing to unpack .../libbison-dev_2%3a3.0.4.dfsg-1build1_arm64.deb ...
Unpacking libbison-dev:arm64 (2:3.0.4.dfsg-1build1) ...
Selecting previously unselected package bison.
Preparing to unpack .../bison_2%3a3.0.4.dfsg-1build1_arm64.deb ...
Unpacking bison (2:3.0.4.dfsg-1build1) ...
Setting up libbison-dev:arm64 (2:3.0.4.dfsg-1build1) ...
Setting up bison (2:3.0.4.dfsg-1build1) ...
update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode
update-alternatives: warning: skip creation of /usr/share/man/man1/yacc.1.gz because associated file /usr/share/man/man1/bison.yacc.1.gz (of link group yacc) doesn't exist
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
executing command [apt-get install -y libncurses5-dev]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libtinfo-dev
Suggested packages:
  ncurses-doc
The following NEW packages will be installed:
  libncurses5-dev libtinfo-dev
0 upgraded, 2 newly installed, 0 to remove and 183 not upgraded.
Need to get 237 kB of archives.
After this operation, 1,322 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 libtinfo-dev arm64 6.1-1ubuntu1.18.04 [74.2 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 libncurses5-dev arm64 6.1-1ubuntu1.18.04 [163 kB]
Fetched 237 kB in 2s (109 kB/s)          
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libtinfo-dev:arm64.
(Reading database ... 81379 files and directories currently installed.)
Preparing to unpack .../libtinfo-dev_6.1-1ubuntu1.18.04_arm64.deb ...
Unpacking libtinfo-dev:arm64 (6.1-1ubuntu1.18.04) ...
Selecting previously unselected package libncurses5-dev:arm64.
Preparing to unpack .../libncurses5-dev_6.1-1ubuntu1.18.04_arm64.deb ...
Unpacking libncurses5-dev:arm64 (6.1-1ubuntu1.18.04) ...
Setting up libtinfo-dev:arm64 (6.1-1ubuntu1.18.04) ...
Setting up libncurses5-dev:arm64 (6.1-1ubuntu1.18.04) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
executing command [apt-get install -y usbutils]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  usbutils
0 upgraded, 1 newly installed, 0 to remove and 183 not upgraded.
Need to get 202 kB of archives.
After this operation, 717 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 usbutils arm64 1:007-4build1 [202 kB]
Fetched 202 kB in 2s (109 kB/s)    
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package usbutils.
(Reading database ... 81428 files and directories currently installed.)
Preparing to unpack .../usbutils_1%3a007-4build1_arm64.deb ...
Unpacking usbutils (1:007-4build1) ...
Setting up usbutils (1:007-4build1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
#All required rosdeps installed successfully
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-pip is already the newest version (9.0.1-2.3~ubuntu1.18.04.5).
0 upgraded, 0 newly installed, 0 to remove and 183 not upgraded.
Starting >>> micro_ros_setup
Finished <<< micro_ros_setup [6.20s]                  

Summary: 1 package finished [7.72s]
...
=== ./uros/drive_base (git) ===
Cloning into '.'...
=== ./uros/micro-ROS-Agent (git) ===
Cloning into '.'...
=== ./uros/micro_ros_msgs (git) ===
Cloning into '.'...
#All required rosdeps installed successfully
Building micro-ROS Agent
Starting >>> micro_ros_msgs
[Processing: micro_ros_msgs]                             
Finished <<< micro_ros_msgs [46.3s]                       
Starting >>> micro_ros_agent
[Processing: micro_ros_agent]                                  
[Processing: micro_ros_agent]                                  
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                        
[Processing: micro_ros_agent]                                      
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                       
[Processing: micro_ros_agent]                                         
[Processing: micro_ros_agent]                                        
--- stderr: micro_ros_agent                                            
Cloning into 'xrceagent'...
Switched to a new branch 'ros2'
HEAD is now at 3eb56b5 Release v2.3.0
Cloning into 'spdlog'...
HEAD is now at eb322062 Bump version to 1.9.2
CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
  The package name passed to `find_package_handle_standard_args` (tinyxml2)
  does not match the name of the calling package (TinyXML2).  This can lead
  to problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/modules/FindTinyXML2.cmake:40 (find_package_handle_standard_args)
  /opt/ros/foxy/install/share/fastrtps/cmake/fastrtps-config.cmake:51 (find_package)
  CMakeLists.txt:153 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::signs'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `vtable for fmt::v6::format_error'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::snprintf_float<double>(double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::error_handler::on_error(char const*)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `char fmt::v6::internal::decimal_point_impl<char>(fmt::v6::internal::locale_ref)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::zero_or_powers_of_10_32'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `char fmt::v6::internal::thousands_sep_impl<char>(fmt::v6::internal::locale_ref)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `std::locale fmt::v6::internal::locale_ref::get<std::locale>() const'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `typeinfo for fmt::v6::format_error'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > fmt::v6::internal::grouping_impl<char>(fmt::v6::internal::locale_ref)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::format_float<long double>(long double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `spdlog::details::log_msg::log_msg(spdlog::source_loc, fmt::v6::basic_string_view<char>, spdlog::level::level_enum, fmt::v6::basic_string_view<char>)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::snprintf_float<long double>(long double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::format_error::~format_error()'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::hex_digits'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::digits'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `int fmt::v6::internal::format_float<double>(double, int, fmt::v6::internal::float_specs, fmt::v6::internal::buffer<char>&)'
/microros_ws/install/micro_ros_agent/lib/libmicroxrcedds_agent.so.2.3.0: undefined reference to `fmt::v6::internal::basic_data<void>::zero_or_powers_of_10_64'
collect2: error: ld returned 1 exit status
make[5]: *** [micro_ros_agent] Error 1
make[4]: *** [CMakeFiles/micro_ros_agent.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [micro_ros_agent-prefix/src/micro_ros_agent-stamp/micro_ros_agent-build] Error 2
make[1]: *** [CMakeFiles/micro_ros_agent.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< micro_ros_agent [10min 14s, exited with code 2]

Summary: 1 package finished [11min 1s]
  1 package failed: micro_ros_agent
  1 package had stderr output: micro_ros_agent
root@jetson2:/# 

I'm so desperate for a solution and actually have chatted with chatGPT :-/ which suggested to:

apt-get update
apt-get install -y build-essential
apt-get install libfmt-dev

Which I have done prior to running the script, but to little success, as above shows :-/

Would you kindly advice?

dusty-nv commented 1 year ago

Hi @usaotearoa, please see my reply to your forum post here:

https://forums.developer.nvidia.com/t/unable-to-build-microros-agent-inside-docker-container/238932/3