C++ , FCL: Compilations Issues with Simple Collision Geometry
I am using Ubuntu 14.04 / Indigo and the latest FCL clone from the repo
With the following includes:
#include <fcl/shape/geometric_shapes.h>
#include <fcl/shape/geometric_shapes_utility.h>
#include <fcl/narrowphase/narrowphase.h>
#include <fcl/collision.h>
#include <iostream>
I am trying to create a simple Box:
Box box0( ); // Parens shouldn't be the correct way to invoke this in C++
Throws no error, but when I
Vec3f boxDims{ 1,1,1 };
Box box0{ boxDims };
or
Box box0{ }; // I would expect the constructor to be invoked with curly braces in C++?
The following errors happen:
CMakeFiles/marker_move.dir/src/mrkr_move.cpp.o: In function `fcl::CollisionGeometry::CollisionGeometry()':
mrkr_move.cpp:(.text._ZN3fcl17CollisionGeometryC2Ev[_ZN3fcl17CollisionGeometryC5Ev]+0x33): undefined reference to `fcl::AABB::AABB()'
CMakeFiles/marker_move.dir/src/mrkr_move.cpp.o: In function `fcl::Box::Box(fcl::Vec3fX<fcl::details::Vec3Data<double> > const&)':
mrkr_move.cpp:(.text._ZN3fcl3BoxC2ERKNS_6Vec3fXINS_7details8Vec3DataIdEEEE[_ZN3fcl3BoxC5ERKNS_6Vec3fXINS_7details8Vec3DataIdEEEE]+0x23): undefined reference to `vtable for fcl::Box'
CMakeFiles/marker_move.dir/src/mrkr_move.cpp.o: In function `fcl::Box::~Box()':
mrkr_move.cpp:(.text._ZN3fcl3BoxD2Ev[_ZN3fcl3BoxD5Ev]+0x13): undefined reference to `vtable for fcl::Box'
Which seems to refer to the Box constructor. Do you know what is causing this? The same errors occur when I try to invoke the constructor with three floats as the signature.
I have added /usr/include/fcl
to the include_directories
command within CMakeLists.txt
, but this does not change the error. I originally built FCL with cmake
/ make
, and used sudo make install
as usual.
Also, I cannot find_package(FCL REQUIRED)
because I am building with catkin/ROS, and FCL is not a ROS package.
Anyone else have these troubles with C++ / FCL / Ubuntu / Indigo?
Thanks in advance!
Asked by jwatson_utah_edu on 2017-04-05 17:03:32 UTC
Comments