Sorry for the delay. tup
has the same result as make
. And I’m not sure how to change my version of the toolchain, as this is the one that apt seems to give me.
Here’s (part of) the output of tup
from where the errors start (The ouput is too large for a message here):
* 62) arm-none-eabi-g++ -std=c++14 -c MotorControl/low_level.cpp -DHW_VERSION_MAJOR=3 -DHW_VERSION_MINOR=5 -DHW_VERSION_VOLTAGE=48 -DUSB_PROTOCOL_NATIVE -DUART_PROTOCOL_ASCII -D__weak="__attribute__((weak))" -D__packed="__attribute__((__packed__))" -DUSE_HAL_DRIVER -DSTM32F405xx -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wfloat-conversion -fdata-sections -ffunction-sections -g -gdwarf-2 -Og -ffast-math -fno-finite-math-only -IDrivers/DRV8301 -IMotorControl -Ifibre/cpp/include -I. -IBoard/v3/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -IBoard/v3/Middlewares/Third_Party/FreeRTOS/Source/include -IBoard/v3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -IBoard/v3/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -IBoard/v3/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -IBoard/v3/Drivers/STM32F4xx_HAL_Driver/Inc -IBoard/v3/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IBoard/v3/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IBoard/v3/Drivers/CMSIS/Include -IBoard/v3/Inc -I. -IDrivers/DRV8301 -o build/MotorControl_low_level.cpp.o
In file included from MotorControl/odrive_main.h:5:0,
from MotorControl/low_level.cpp:22:
fibre/cpp/include/fibre/protocol.hpp: In function 'bool conversion::set_from_float_ex(float, T*, int)':
fibre/cpp/include/fibre/protocol.hpp:783:39: error: 'round' is not a member of 'std'
return *property = static_cast<T>(std::round(value)), true;
^
fibre/cpp/include/fibre/protocol.hpp:783:39: note: suggested alternative:
In file included from Board/v3/Drivers/CMSIS/Include/arm_math.h:319:0,
from MotorControl/low_level.cpp:8:
/usr/include/newlib/math.h:282:15: note: 'round'
extern double round _PARAMS((double));
^
In file included from MotorControl/odrive_main.h:5:0,
from MotorControl/low_level.cpp:22:
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {float, float, float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 3u>' to 'const char*' in initialization
output_properties_(PropertyListFactory<TOutputs...>::template make_property_list<0>(output_names_, out_args_))
^
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {float, float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 2u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Motor; TInputs = {float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Axis; TInputs = {}; TOutputs = {float}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {float, float, float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {float, float, float}; TNames = {const char*, const char*, const char*}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:91:39: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 3u>' to 'const char*' in initialization
output_properties_(PropertyListFactory<TOutputs...>::template make_property_list<0>(output_names_, out_args_))
^
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {float, float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {float, float}; TNames = {const char*, const char*}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:94:39: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 2u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {float}; TNames = {const char*}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:96:35: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {}; TNames = {}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:97:118: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Motor; TInputs = {float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Motor; TArgs = {float}; TNames = {const char*}; <template-parameter-1-4> = void]'
MotorControl/motor.hpp:218:44: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Axis; TInputs = {}; TOutputs = {float}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = float]':
fibre/cpp/include/fibre/protocol.hpp:1069:118: required from 'ProtocolFunction<TObj, std::tuple<_Tail ...>, std::tuple<TRet> > make_protocol_function(const char*, TObj&, TRet (TObj::*)(TArgs ...), TNames ...) [with TObj = Axis; TRet = float; TArgs = {}; TNames = {}; <template-parameter-1-5> = void]'
MotorControl/axis.hpp:182:70: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 1u>' to 'const char*' in initialization
*** tup errors ***
*** Command ID=502 failed with return value 1
tup error: Expected to write to file 'build/MotorControl_low_level.cpp.o' from cmd 502 but didn't
*** Additionally, command 502 failed to process input dependencies. These should probably be fixed before addressing the command failure.
* 63) arm-none-eabi-g++ -std=c++14 -c MotorControl/axis.cpp -DHW_VERSION_MAJOR=3 -DHW_VERSION_MINOR=5 -DHW_VERSION_VOLTAGE=48 -DUSB_PROTOCOL_NATIVE -DUART_PROTOCOL_ASCII -D__weak="__attribute__((weak))" -D__packed="__attribute__((__packed__))" -DUSE_HAL_DRIVER -DSTM32F405xx -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -Wall -Wfloat-conversion -fdata-sections -ffunction-sections -g -gdwarf-2 -Og -ffast-math -fno-finite-math-only -IDrivers/DRV8301 -IMotorControl -Ifibre/cpp/include -I. -IBoard/v3/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F -IBoard/v3/Middlewares/Third_Party/FreeRTOS/Source/include -IBoard/v3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -IBoard/v3/Middlewares/ST/STM32_USB_Device_Library/Core/Inc -IBoard/v3/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Inc -IBoard/v3/Drivers/STM32F4xx_HAL_Driver/Inc -IBoard/v3/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -IBoard/v3/Drivers/CMSIS/Device/ST/STM32F4xx/Include -IBoard/v3/Drivers/CMSIS/Include -IBoard/v3/Inc -I. -IDrivers/DRV8301 -o build/MotorControl_axis.cpp.o
In file included from MotorControl/odrive_main.h:5:0,
from MotorControl/axis.cpp:7:
fibre/cpp/include/fibre/protocol.hpp: In function 'bool conversion::set_from_float_ex(float, T*, int)':
fibre/cpp/include/fibre/protocol.hpp:783:39: error: 'round' is not a member of 'std'
return *property = static_cast<T>(std::round(value)), true;
^
fibre/cpp/include/fibre/protocol.hpp:783:39: note: suggested alternative:
In file included from MotorControl/utils.h:10:0,
from MotorControl/axis.cpp:6:
/usr/include/newlib/math.h:282:15: note: 'round'
extern double round _PARAMS((double));
^
In file included from MotorControl/odrive_main.h:5:0,
from MotorControl/axis.cpp:7:
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {float, float, float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 3u>' to 'const char*' in initialization
output_properties_(PropertyListFactory<TOutputs...>::template make_property_list<0>(output_names_, out_args_))
^
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {float, float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 2u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Controller; TInputs = {}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Motor; TInputs = {float}; TOutputs = {}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >&) [with TObj = Axis; TInputs = {}; TOutputs = {float}]':
fibre/cpp/include/fibre/protocol.hpp:683:8: required from here
fibre/cpp/include/fibre/protocol.hpp:989:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:989:118: error: cannot convert 'const std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {float, float, float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {float, float, float}; TNames = {const char*, const char*, const char*}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:91:39: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 3u>' to 'const char*' in initialization
output_properties_(PropertyListFactory<TOutputs...>::template make_property_list<0>(output_names_, out_args_))
^
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {float, float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {float, float}; TNames = {const char*, const char*}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:94:39: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 2u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {float}; TNames = {const char*}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:96:35: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Controller; TInputs = {}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Controller; TArgs = {}; TNames = {}; <template-parameter-1-4> = void]'
MotorControl/controller.hpp:97:118: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Motor; TInputs = {float}; TOutputs = {}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = void]':
fibre/cpp/include/fibre/protocol.hpp:1063:106: required from 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<> > make_protocol_function(const char*, TObj&, void (TObj::*)(TArgs ...), TNames ...) [with TObj = Motor; TArgs = {float}; TNames = {const char*}; <template-parameter-1-4> = void]'
MotorControl/motor.hpp:218:44: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 1u>' to 'const char*' in initialization
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp: In instantiation of 'ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::ProtocolFunction(const char*, TObj&, ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet (TObj::*)(TInputs ...), std::array<const char*, sizeof... (TAllProperties)>, std::array<const char*, sizeof... (TOutputs)>) [with TObj = Axis; TInputs = {}; TOutputs = {float}; ProtocolFunction<TObj, std::tuple<_Elements ...>, std::tuple<_Tail ...> >::TRet = float]':
fibre/cpp/include/fibre/protocol.hpp:1069:118: required from 'ProtocolFunction<TObj, std::tuple<_Tail ...>, std::tuple<TRet> > make_protocol_function(const char*, TObj&, TRet (TObj::*)(TArgs ...), TNames ...) [with TObj = Axis; TRet = float; TArgs = {}; TNames = {}; <template-parameter-1-5> = void]'
MotorControl/axis.hpp:182:70: required from here
fibre/cpp/include/fibre/protocol.hpp:977:118: error: initializer for 'std::__array_traits<const char*, 0u>::_Type' must be brace-enclosed
fibre/cpp/include/fibre/protocol.hpp:977:118: error: cannot convert 'std::array<const char*, 1u>' to 'const char*' in initialization
*** tup errors ***
*** Command ID=506 failed with return value 1
tup error: Expected to write to file 'build/MotorControl_axis.cpp.o' from cmd 506 but didn't
*** Additionally, command 506 failed to process input dependencies. These should probably be fixed before addressing the command failure.