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.

¿Error de múltiples definiciones en STM32CubeIDE?

He estado siguiendo esta documentación para la interfaz de un módulo de cámara digital con una placa stm32f746g-disco:

Enlace a la documentación

La parte que estoy siguiendo específicamente es las páginas 60-74.

Todo funcionó bien hasta la página 68, después de completar los pasos mostrados en 68-74, cuando compilé obtuve los siguientes errores:

c:\st\stm32cubeide_1.6.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Core/Src/main.o:C:/Users/Garrett/STM32CubeIDE/workspace_1.6.2/DCMI_Project/Debug/../Core/Src/font24.c:85: definición múltiple de `Font24_Table’; ./Core/Src/font24.o:C:/Users/Garrett/STM32CubeIDE/workspace_1.6.2/DCMI_Project/Debug/../Core/Src/font24.c:85: primer lugar definido aquí.

Y

c:\st\stm32cubeide_1.6.1\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346\tools\arm-none-eabi\bin\ld.exe: ./Core/Src/main.o:(.data.Font24+0x0): definición múltiple de `Font24′; ./Core/Src/font24.o:(.data.Font24+0x0): primer lugar definido aquí.

Y

collect2.exe: error: ld devolvió el estado de salida 1 make: *** [makefile:74: DCMI_Project.elf] Error 1 make -j16 todo” terminó con el código de salida 2. La compilación podría estar incompleta.

No estoy seguro de que se trate de un error de enlazador, ya que Font24_Table y Font24se declaran en el archivo de encabezado y se definen en el archivo C.

Aquí están las únicas menciones de la tabla y font24 en el encabezado

Esta es la definición de la tabla en el archivo C

Y esta es la definición de font24 en el archivo C

Entonces intenté solucionar el problema como un error de archivo make, y navegé hasta el archivo make. Múltiples fuentes en línea dijeron que en C_SRCS probablemente vería lo mismo dos veces, y que eliminarlo resolvería mi problema. Sin embargo, no veo nada repetido.

El archivo make que estoy viendo

Por último, pensé en mostrar el directorio del proyecto, ya que no hay indicadores visibles sobre dónde está el error en el proyecto.

Directorio del proyecto

Lo siento si esta pregunta fue muy densa, he estado solucionando este problema por un tiempo ahora, pero no soy un experto en C o stm32CubeIDE. Agradecería cualquier ayuda/entrada, ¡gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje AI, es difícil proporcionar una respuesta específica sin acceso al código y al entorno en el que estás trabajando. No obstante, según la información proporcionada, parece que los errores de enlazador se deben a múltiples definiciones de las variables Font24_Table y Font24 en el proyecto. El enlazador no puede resolver qué definición usar, lo que resulta en errores.

    Para resolver esto, es posible que debas revisar todos los archivos en tu proyecto y asegurarte de que las variables Font24_Table y Font24 se definan sólo una vez. Si se definen en varios archivos, es posible que debas mover sus declaraciones a un archivo de encabezado e incluirlo siempre que se usen.

    Además, puedes verificar si todas las bibliotecas y dependencias necesarias se incluyen en el proyecto y asegurarte de que sus rutas estén configuradas correctamente.

    Finalmente, si el problema persiste, es posible que desees buscar ayuda en la comunidad o foro de STM32CubeIDE, ya que podrían proporcionar orientación más específica basada en tu proyecto y entorno.

Comments are closed.