uleroboticsgroup / yasmin

YASMIN (Yet Another State MachINe)
GNU General Public License v3.0
130 stars 25 forks source link

Fixing build error for Mac M1 / Apple clang version 14.0.3 #17

Closed mattwilliamson closed 4 months ago

mattwilliamson commented 4 months ago

Build fails using Robostack on Mac M1

(ros_env) ➜  deepdrive_voice g++ --version
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
Target: arm64-apple-darwin22.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
colcon build --symlink-install   --cmake-args -DPython3_FIND_VIRTUALENV=ONLY

...

Starting >>> audio_common
--- stderr: yasmin_ros
In file included from /Users/matt/Dropbox/Robotics/rover/deepdrive_voice/yasmin/yasmin_ros/src/yasmin_ros/service_state.cpp:16:
/Users/matt/Dropbox/Robotics/rover/deepdrive_voice/yasmin/yasmin_ros/include/yasmin_ros/service_state.hpp:73:40: error: use 'template' keyword to treat 'create_client' as a dependent template name
    this->service_client = this->node->create_client<ServiceT>(srv_name);
                                       ^
                                       template 
1 error generated.
make[2]: *** [CMakeFiles/yasmin_ros_lib.dir/build.make:104: CMakeFiles/yasmin_ros_lib.dir/src/yasmin_ros/service_state.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:140: CMakeFiles/yasmin_ros_lib.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
---
Failed   <<< yasmin_ros [3.79s, exited with code 2]
Aborted  <<< audio_common [0.55s]
Aborted  <<< llama_msgs [6.00s]

Summary: 4 packages finished [6.81s]
  1 package failed: yasmin_ros
  2 packages aborted: audio_common llama_msgs
  5 packages had stderr output: audio_common_msgs llama_msgs whisper_msgs yasmin_msgs yasmin_ros
  7 packages not processed

--- stderr: yasmin_ros
In file included from /Users/matt/Dropbox/Robotics/rover/deepdrive_voice/yasmin/yasmin_ros/src/yasmin_ros/service_state.cpp:16:
/Users/matt/Dropbox/Robotics/rover/deepdrive_voice/yasmin/yasmin_ros/include/yasmin_ros/service_state.hpp:73:40: error: use 'template' keyword to treat 'create_client' as a dependent template name
    this->service_client = this->node->create_client<ServiceT>(srv_name);
                                       ^
                                       template 

...
mgonzs13 commented 4 months ago

Thanks @mattwilliamson for the fix