Closed murphm8 closed 5 years ago
The error message:
fatal error: fcl/narrowphase/distance.h: No such file or directory
indicates that the include directories aren't setup correctly. Quickly checking the used include directories shows that LIBFCL_INCLUDE_DIRS
is empty.
I assume the variable is supposed to be set by this call: pkg_check_modules(LIBFCL REQUIRED fcl)
.
Quickly checking where this pkg-config
modules is found by looking at LIBFCL_PREFIX
:
catkin_make_isolated
case the prefix is <ws>/devel_isolated/fcl_ros
whereascolcon
it is found in /usr
Checking the content of the environment variable PKG_CONFIG_PATH
shows:
colcon
it only contains /opt/ros/melodic/lib/pkgconfig
whereascatkin_make_isolated
it additionally contains two paths from the fcl_ros
package.Why is that the case? colcon
only sources each packages script - not the workspace level script usually generated by catkin
(it actually suppresses the generation of those so that multiple package don't overwrite the same file). The PKG_CONFIG_PATH
isn't being set in the package level script of fcl_ros
- the package relies on the global behavior of the catkin
generated setup files.
One approach to address this is to extend PKG_CONFIG_PATH
for catkin
packages in colcon-ros
. That would make the behavior more similar to catkin_make_isolated
. I can create a PR for this soon.
@murphm8 Please see #72 for a proposed fix.
I have tested and confirmed that #72 fixes this issue.
Hello,
This issue is originally from https://forums.aws.amazon.com/thread.jspa?threadID=308176&tstart=0
This workspace builds with
catkin_make_isolated
but fails withcolcon build
.Create workspace by doing the following:
git clone https://github.com/ros-industrial/fanuc.git
git clone https://github.com/ros-industrial/industrial_core.git
git clone https://github.com/ros-industrial-consortium/trajopt_ros
cd trajopt_ros
git checkout kinetic-devel
cd ../..
Should now be in root of ros directorywstool init src
wstool merge -t src src/trajopt_ros/dependencies.rosinstall
wstool update -t src
cd src/tesseract
git checkout kinetic-devel
sudo apt-get install ros-kinetic-pr2-common
sudo apt install ros-kinetic-ecl
sudo apt-get install ros-kinetic-moveit
sudo apt-get install ros-kinetic-navigation
sudo apt-get install ros-kinetic-octomap-ros
The error is:
Can you please take a look and let me know what I'm missing to get
colcon build
to properly link thefcl
library? Or if paths have changed?Thanks!