Symbol multiply defined - C (СИ)
Формулировка задачи:
Попытался вынести некоторые определения из main в отдельный файл.
В В В Globals.c решил вытащить некоторые функции из main, которые используют вышеприведённые объявления. Для это пришлось в В результате все эти объявления оказались не должно было решить эту проблему?!
main.c
написал:#include "Globals.h"
Globals.h
вытащил из main:#ifndef _GLOBALS_H #define _GLOBALS_H #define osObjectsPublic // define objects in main module #include "osObjects.h" // RTOS object definitions #include "stm32f4xx_spi.h" // Keil::Device:StdPeriph Drivers:SPI #include "stm32f4xx_gpio.h" // Keil::Device:StdPeriph Drivers:GPIO #include "RTE_Device.h" // Keil::Device:Startup #include "stm32f4xx_dma.h" // Keil::Device:StdPeriph Drivers:DMA #include "rl_usb.h" #include "rl_usbd.h" #include <Driver_USBD.h> #include <string.h> uint8_t m_dataFromUSBtoSPI1[0x800]; uint8_t m_dataFromSPI1toUSB[0x800]; int m_spi1SizeFromPC=0x2; uint32_t m_spi1SizeToPC=0x0; uint8_t m_dataFromUSBtoSPI2[0x800]; uint8_t m_dataFromSPI2toUSB[0x800]; uint32_t m_spi2Size=0x2; uint8_t m_buf1ToFlash [0x800]; uint16_t flashBuf [0x20]; uint8_t* pDataToUsb; uint32_t dataToUsbOffset; uint32_t cntToUsb; osSemaphoreId semaphoreHaveFromUsb; // Semaphore ID osSemaphoreDef(semaphoreHaveFromUsb); // Semaphore definition osSemaphoreId semaphoreCanSendToUsb; // Semaphore ID osSemaphoreDef(semaphoreCanSendToUsb); // Semaphore definition void initSPI(); #endif
Globals.c
написать:#include "Globals.h"
multiply defined
. В чём дело? Разве вот это вGlobals.h
:#ifndef _GLOBALS_H #define _GLOBALS_H .................... #endif
Решение задачи: «Symbol multiply defined»
textual
Листинг программы
uint8_t m_dataFromUSBtoSPI1[0x800]; uint8_t m_dataFromSPI1toUSB[0x800]; int m_spi1SizeFromPC=0x2; uint32_t m_spi1SizeToPC=0x0; uint8_t m_dataFromUSBtoSPI2[0x800]; uint8_t m_dataFromSPI2toUSB[0x800]; uint32_t m_spi2Size=0x2; uint8_t m_buf1ToFlash [0x800]; uint16_t flashBuf [0x20]; uint8_t* pDataToUsb; uint32_t dataToUsbOffset; uint32_t cntToUsb;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д