es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Dónde puedo encontrar la biblioteca que proporciona el método String.substring()?

Estoy tratando de compilar un proyecto de Arduino en Linux, abstrayendo las partes de hardware. Considera la siguiente línea:

int keyNumRepeat = userInputPrev.substring(6, 8).toInt();

Parece que Arduino utiliza alguna biblioteca no estándar que no está en mi sistema:

hsldz_totp_lock/hsldz_totp_lock.ino:335:38: error: ‘String’ {aka ‘class std::__cxx11::basic_string<char>’} has no member named ‘substring’; did you mean ‘substr’?
  335 |     int keyNumRepeat = userInputPrev.substring(6, 8).toInt();
      |                                      ^~~~~~~~~
      |                                      substr
make: *** [Makefile:54: sim] Error 1

¿Está disponible en algún lugar para que pueda incluirlo en mi proyecto mientras intento compilar? ¿O es algo que depende fuertemente de otros detalles de implementación de Arduino?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está relacionado con el uso del método substring en un objeto String en el código de Arduino. Este método no parece ser parte de la biblioteca estándar de C++, lo cual es por qué el compilador no puede encontrarlo. En su lugar, puede ser parte de la biblioteca específica de Arduino.

    Una opción para resolver este error es buscar e incluir la biblioteca adecuada en el proyecto de Arduino. Esto puede requerir alguna investigación para determinar qué biblioteca contiene el método substring necesario.

    Otra posibilidad es implementar manualmente la funcionalidad del método substring utilizando operaciones de cadena estándar de C++, como el método substr sugerido por el mensaje de error del compilador.

    También es posible que el uso de substring en este proyecto de Arduino en particular dependa en gran medida de otros detalles de implementación específicos de Arduino. En ese caso, puede que no sea factible abstraer las partes de hardware sin cambios significativos en el código.

Comments are closed.