RoboStack / ros-noetic

vinca configuration files for ros-noetic
https://robostack.github.io
464 stars 73 forks source link

Add octomap-mapping & octomap-server #378

Closed joerowelll closed 1 year ago

Tobias-Fischer commented 1 year ago

It seems there are some symbols undefined on osx:

[6/25] Linking CXX shared library devel/lib/liboctomap_server.dylib
FAILED: devel/lib/liboctomap_server.dylib 
: && $BUILD_PREFIX/bin/arm64-apple-darwin20.0.0-clang++ -fdiagnostics-color=always -DBOOST_ERROR_CODE_HEADER_ONLY -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -mmacosx-version-min=11.0 -dynamiclib -Wl,-headerpad_max_install_names -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -o devel/lib/liboctomap_server.dylib -install_name @rpath/liboctomap_server.dylib CMakeFiles/octomap_server.dir/src/OctomapServer.cpp.o CMakeFiles/octomap_server.dir/src/OctomapServerMultilayer.cpp.o CMakeFiles/octomap_server.dir/src/TrackingOctomapServer.cpp.o  $PREFIX/lib/liboctomap.dylib  $PREFIX/lib/liboctomath.dylib  $PREFIX/lib/libpcl_ros_filter.dylib  $PREFIX/lib/libpcl_ros_tf.dylib  $PREFIX/lib/librosbag.dylib  $PREFIX/lib/librosbag_storage.dylib  $PREFIX/lib/libroslz4.dylib  $PREFIX/lib/liblz4.dylib  $PREFIX/lib/libtopic_tools.dylib  $PREFIX/lib/libpcl_common.dylib  $PREFIX/lib/liboctomap_ros.dylib  $PREFIX/lib/liboctomap.dylib  $PREFIX/lib/liboctomath.dylib  $PREFIX/lib/libtf.dylib  $PREFIX/lib/libtf2_ros.dylib  $PREFIX/lib/libactionlib.dylib  $PREFIX/lib/libmessage_filters.dylib  $PREFIX/lib/libtf2.dylib  $PREFIX/lib/libdynamic_reconfigure_config_init_mutex.dylib  $PREFIX/lib/libnodeletlib.dylib  $PREFIX/lib/libboost_thread.dylib  $PREFIX/lib/libbondcpp.dylib  $PREFIX/lib/libclass_loader.dylib  $PREFIX/lib/libPocoFoundation.dylib  -ldl  $PREFIX/lib/libconsole_bridge.1.0.dylib  $PREFIX/lib/libroslib.dylib  $PREFIX/lib/librospack.dylib  $PREFIX/lib/libboost_filesystem.dylib  $PREFIX/lib/libtinyxml2.dylib  $PREFIX/lib/libroscpp.dylib  $PREFIX/lib/libboost_chrono.dylib  $PREFIX/lib/librosconsole.dylib  $PREFIX/lib/librosconsole_log4cxx.dylib  $PREFIX/lib/librosconsole_backend_interface.dylib  $PREFIX/lib/liblog4cxx.dylib  $PREFIX/lib/libboost_regex.dylib  $PREFIX/lib/libxmlrpcpp.dylib  $PREFIX/lib/libroscpp_serialization.dylib  $PREFIX/lib/librostime.dylib  $PREFIX/lib/libboost_date_time.dylib  $PREFIX/lib/libcpp_common.dylib  $PREFIX/lib/libboost_system.dylib  $PREFIX/lib/libpcl_ros_filter.dylib  $PREFIX/lib/libpcl_ros_tf.dylib  $PREFIX/lib/librosbag.dylib  $PREFIX/lib/librosbag_storage.dylib  $PREFIX/lib/libroslz4.dylib  $PREFIX/lib/liblz4.dylib  $PREFIX/lib/libtopic_tools.dylib  $PREFIX/lib/libpcl_common.dylib  $PREFIX/lib/liboctomap_ros.dylib  $PREFIX/lib/libtf.dylib  $PREFIX/lib/libtf2_ros.dylib  $PREFIX/lib/libactionlib.dylib  $PREFIX/lib/libmessage_filters.dylib  $PREFIX/lib/libtf2.dylib  $PREFIX/lib/libdynamic_reconfigure_config_init_mutex.dylib  $PREFIX/lib/libnodeletlib.dylib  $PREFIX/lib/libboost_thread.dylib  $PREFIX/lib/libbondcpp.dylib  $PREFIX/lib/libclass_loader.dylib  $PREFIX/lib/libPocoFoundation.dylib  -ldl  $PREFIX/lib/libconsole_bridge.1.0.dylib  $PREFIX/lib/libroslib.dylib  $PREFIX/lib/librospack.dylib  $PREFIX/lib/libboost_filesystem.dylib  $PREFIX/lib/libtinyxml2.dylib  $PREFIX/lib/libroscpp.dylib  $PREFIX/lib/libboost_chrono.dylib  $PREFIX/lib/librosconsole.dylib  $PREFIX/lib/librosconsole_log4cxx.dylib  $PREFIX/lib/librosconsole_backend_interface.dylib  $PREFIX/lib/liblog4cxx.dylib  $PREFIX/lib/libboost_regex.dylib  $PREFIX/lib/libxmlrpcpp.dylib  $PREFIX/lib/libroscpp_serialization.dylib  $PREFIX/lib/librostime.dylib  $PREFIX/lib/libboost_date_time.dylib  $PREFIX/lib/libcpp_common.dylib  $PREFIX/lib/libboost_system.dylib && :
ld: warning: -pie being ignored. It is only used when linking a main executable
Undefined symbols for architecture arm64:
  "pcl::PassThrough<pcl::PointXYZ>::applyFilterIndices(std::__1::vector<int, std::__1::allocator<int> >&)", referenced from:
      pcl::PassThrough<pcl::PointXYZ>::applyFilter(std::__1::vector<int, std::__1::allocator<int> >&) in OctomapServer.cpp.o
  "pcl::FilterIndices<pcl::PointXYZ>::applyFilter(pcl::PointCloud<pcl::PointXYZ>&)", referenced from:
      vtable for pcl::PassThrough<pcl::PointXYZ> in OctomapServer.cpp.o
      vtable for pcl::FilterIndices<pcl::PointXYZ> in OctomapServer.cpp.o
  "pcl::ExtractIndices<pcl::PointXYZ>::applyFilter(pcl::PointCloud<pcl::PointXYZ>&)", referenced from:
      vtable for pcl::ExtractIndices<pcl::PointXYZ> in OctomapServer.cpp.o
  "pcl::ExtractIndices<pcl::PointXYZ>::applyFilterIndices(std::__1::vector<int, std::__1::allocator<int> >&)", referenced from:
      pcl::ExtractIndices<pcl::PointXYZ>::applyFilter(std::__1::vector<int, std::__1::allocator<int> >&) in OctomapServer.cpp.o
  "pcl::SACSegmentation<pcl::PointXYZ>::initSACModel(int)", referenced from:
      vtable for pcl::SACSegmentation<pcl::PointXYZ> in OctomapServer.cpp.o
  "pcl::SACSegmentation<pcl::PointXYZ>::initSAC(int)", referenced from:
      vtable for pcl::SACSegmentation<pcl::PointXYZ> in OctomapServer.cpp.o
  "pcl::SACSegmentation<pcl::PointXYZ>::segment(pcl::PointIndices&, pcl::ModelCoefficients&)", referenced from:
      octomap_server::OctomapServer::filterGroundPlane(pcl::PointCloud<pcl::PointXYZ> const&, pcl::PointCloud<pcl::PointXYZ>&, pcl::PointCloud<pcl::PointXYZ>&) const in OctomapServer.cpp.o
      vtable for pcl::SACSegmentation<pcl::PointXYZ> in OctomapServer.cpp.o
ld: symbol(s) not found for architecture arm64

On Windows, we have:

FAILED: CMakeFiles/octomap_server.dir/src/OctomapServer.cpp.obj 
C:\PROGRA~2\MICROS~2\2019\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DNOMINMAX -DOCTOMAP_NODEBUGOUT -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"octomap_server\" -DWIN32_LEAN_AND_MEAN -D_USE_MATH_DEFINES -Doctomap_server_EXPORTS -I%SRC_DIR%\build\devel\include -I%SRC_DIR%\ros-noetic-octomap-server\src\work\include -I%PREFIX%\Library\include -I%PREFIX%\Library\share\xmlrpcpp\cmake\..\..\..\include\xmlrpcpp -I%PREFIX%\Library\include\eigen3 -I%PREFIX%\Library\include\pcl-1.12 /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG   /D _VARIADIC_MAX=10 /Zc:__cplusplus /showIncludes /FoCMakeFiles\octomap_server.dir\src\OctomapServer.cpp.obj /FdCMakeFiles\octomap_server.dir\ /FS -c %SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp
%PREFIX%\Library\include\boost/bind.hpp(41): note: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
%PREFIX%\Library\include\dynamic_reconfigure/config_tools.h(136): warning C4267: 'return': conversion from 'size_t' to 'int', possible loss of data
%SRC_DIR%\ros-noetic-octomap-server\src\work\include\octomap_server/OctomapServer.h(50): warning C4068: unknown pragma 'GCC'
%SRC_DIR%\ros-noetic-octomap-server\src\work\include\octomap_server/OctomapServer.h(51): warning C4068: unknown pragma 'GCC'
%SRC_DIR%\ros-noetic-octomap-server\src\work\include\octomap_server/OctomapServer.h(53): warning C4068: unknown pragma 'GCC'
%PREFIX%\Library\include\pcl-1.12\pcl/io/low_level_io.h(77): warning C4996: '_open': This function or variable may be unsafe. Consider using _sopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
%PREFIX%\Library\include\pcl-1.12\pcl/io/low_level_io.h(82): warning C4996: '_open': This function or variable may be unsafe. Consider using _sopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(649): error C2589: '(': illegal token on right side of '::'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(649): error C2062: type 'unknown-type' unexpected
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(649): error C2059: syntax error: ')'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(675): error C2589: '(': illegal token on right side of '::'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(675): error C2062: type 'unknown-type' unexpected
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(675): error C2059: syntax error: ')'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(776): error C2589: '(': illegal token on right side of '::'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(776): error C2062: type 'unknown-type' unexpected
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(776): error C2059: syntax error: ')'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(791): error C2589: '(': illegal token on right side of '::'
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(791): error C2062: type 'unknown-type' unexpected
%SRC_DIR%\ros-noetic-octomap-server\src\work\src\OctomapServer.cpp(791): error C2059: syntax error: ')'

Do you need macOS/Windows builds? If not, I would be happy to merge just the addition on Linux (in this case, please amend the PR to undo the changes on macOS/Windows).

joerowelll commented 1 year ago

I only need the linux64 packages, I have amended the PR

Tobias-Fischer commented 1 year ago

Thanks for the contribution!