Open stwirth opened 3 years ago
Looking at the verbose output:
/usr/bin/c++ -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"people_tracking_filter\" -Dpeople_tracking_filter_EXPORTS -I/home/stwirth/people_test/src/people/people_tracking_filter/include -I/home/stwirth/people_test/devel_isolated/people_msgs/include -I/opt/ros/kinetic/include -I/opt/ros/kinetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/home/stwirth/people_test/devel_isolated/bfl/include/bfl/bfl -fPIC -o CMakeFiles/people_tracking_filter.dir/src/sysmodel_pos_vel.cpp.o -c /home/stwirth/people_test/src/people/people_tracking_filter/src/sysmodel_pos_vel.cpp
In file included from /home/stwirth/people_test/src/people/people_tracking_filter/src/mcpdf_vector.cpp:37:0:
/home/stwirth/people_test/src/people/people_tracking_filter/include/people_tracking_filter/mcpdf_vector.h:40:27: fatal error: bfl/pdf/mcpdf.h: No such file or directory
compilation terminated.
the bfl include path is set to /home/stwirth/people_test/devel_isolated/bfl/include/bfl/bfl
which is two bfl
s too much for e.g.
https://github.com/wg-perception/people/blob/bc73fa0c2ff96da27688e3ad503a1aa4342d214a/people_tracking_filter/include/people_tracking_filter/mcpdf_vector.h#L40
to work. The file is located in /home/stwirth/people_test/devel_isolated/bfl/include/bfl/pdf/mcpdf.h
.
When ros-kinetic-bfl
is installed, the header files are installed in
/opt/ros/kinetic/include/bfl/
e.g.
/opt/ros/kinetic/include/bfl/pdf/mcpdf.h
The "catch all" include directive -I/opt/ros/kinetic/include
therefore works here.
The CMake find package call (using pkgconfig)
https://github.com/wg-perception/people/blob/413543b291413b6dbb7b845062e861163eb4e094/people_tracking_filter/CMakeLists.txt#L5-L6
sets ${BFL_INCLUDE_DIRS}
to /home/stwirth/people_test/devel_isolated/bfl/include/bfl
when bfl is also build from source and to /opt/ros/kinetic/include/bfl
if ros-kinetic-bfl
is installed.
So it seems that all include statements should actually not include bfl/
in the path and https://github.com/wg-perception/people/pull/76/commits/a1008765fb12286595195a2ceafd3764f5cff5ae should be reverted.
Alternatively, ${BFL_INCLUDE_DIRS}/..
could be added as include path. This would keep the #include
statements containing bfl/
(which I find nicer because more explicit).
PR with fix: #97.
Compiling on xenial/kinetic from source with bfl in the same workspace fails with
To reproduce: Make sure you do NOT have
ros-kinetic-bfl
installed.Full log of the build:
https://github.com/wg-perception/people/pull/76 was meant to fix this but still the include paths are wrong.