Installation Failed
Closed this issue · 3 comments
Bug report
Required Info:
- Environments:
- Windows 10
- Docker for Windows
Steps to Reproduce
- Create docker container based on osrf/ros2:ardent-ros1-bridge
docker run --name firos2test -it osrf/ros2:ardent-ros1-bridge /bin/bash
- Install required software
apt install -y curl git wget python3-vcstool ros-ardent-ament-*
- Installation of FIROS2
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos
vcs import ~/ros2_ws/src < ros2.repos
cd ~/ros2_ws/src/ros2
git clone --recursive https://github.com/eProsima/firos2
source /opt/ros/ardent/setup.bash
ament build --only-package firos2
Behavior
usage: ament build [-h] [-C DIRECTORY] [--build-space BUILD_SPACE]
[--install-space INSTALL_SPACE] [--build-tests]
[--make-flags [MAKE_FLAGS [MAKE_FLAGS ...]]] [--skip-build]
[--skip-install] [-s]
[--python-interpreter PYTHON_INTERPRETER] [--isolated]
[--start-with START_WITH] [--end-with END_WITH]
[--only-packages ONLY_PACKAGES [ONLY_PACKAGES ...]]
[--skip-packages [SKIP_PACKAGES [SKIP_PACKAGES ...]]]
[--parallel] [--force-ament-cmake-configure]
[--ament-cmake-args [AMENT_CMAKE_ARGS [AMENT_CMAKE_ARGS ...]]]
[--force-cmake-configure]
[--cmake-args [CMAKE_ARGS [CMAKE_ARGS ...]]]
[--ctest-args [CTEST_ARGS [CTEST_ARGS ...]]] [--use-ninja]
[basepath]
ament build: error: argument basepath: Path './src' does not exist
Additional information
In case of ament build firos2
:
[ 63%] Linking CXX shared library libisrtpsngsiv2bridgelib.so
/usr/bin/ld: cannot find -lcurlpp
collect2: error: ld returned 1 exit status
CMakeFiles/isrtpsngsiv2bridgelib.dir/build.make:229: recipe for target 'libisrtpsngsiv2bridgelib.so' failed
make[2]: *** [libisrtpsngsiv2bridgelib.so] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/isrtpsngsiv2bridgelib.dir/all' failed
make[1]: *** [CMakeFiles/isrtpsngsiv2bridgelib.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
<== Command '. /root/ros2_ws/src/ros2/build/firos2/cmake__build.sh && /usr/bin/make -j2 -l2' failed in '/root/ros2_ws/src/ros2/build/firos2' with exit code '2'
<== Command '. /root/ros2_ws/src/ros2/build/firos2/cmake__build.sh && /usr/bin/make -j2 -l2' failed in '/root/ros2_ws/src/ros2/build/firos2' with exit code '2'
The solution I found
- copy libcurlpp to
cd ~/ros2_ws/src/ros2/firos2/thirdparty
ament build curlpp
cd install/lib
cp libcurlpp.so* /usr/lib/x86_64-linux-gnu
- Rebuild the firos2
cd ~/ros2_ws/src/ros2
ament build firos2
Is it correct ,@JaimeMartin?
Hi @urabe0225
I just checked the issue and there is a lack of information in the documentation.
On Linux, in its current state, FIROS2 depends of boost/asio and cURLpp, so that packages should be installed before build FIROS2.
In the case ament build --only-package firos2
just cd ~/ros2_ws/
should do the trick, but note that the guide was written as a continuation of the linked ROS2 installation procedure.
In your case, sourcing an already installed ardent, you must adapt the build procedure, exactly as you done with ament build firos2
.
We are working in a new release of FIROS2, that will use asio and cURLpp as thirdparty on Linux. We will update the documentation as well.
I close this issue. If you continue having any problem, you can open it again.