ich eine Strukturdefinition in Datei platform.h
:Typedef Struct Zeiger nicht erkannt
typedef struct {
VL53L0X_DevData_t Data;
uint8_t I2cDevAddr;
uint8_t comms_type;
uint16_t comms_speed_khz;
uint16_t devID;
I2C_HandleTypeDef * i2c_handle;
} VL53L0X_Dev_t;
Und einen typedef auf einen Zeiger wie dies in der gleichen Datei:
typedef VL53L0X_Dev_t* VL53L0X_DEV;
In einer anderen Datei, eine Referenz zu VL53L0X_DEV
ist mit error: unknown type name 'VL53L0X_DEV'
fehlgeschlagen Ich habe platform.h
in dieser anderen Datei enthalten. Was ist daran falsch?
EDIT
Ich bin fest mit diesem Code (eine Menge davon) von einem Lieferanten geliefert und daher gibt es nicht viel Spielraum für die mit dem Zeiger typedef oder zur Bereitstellung eines MCVE Beispiel tut weg . Hier ist das relevante Build-Protokoll. Es scheint die vl53l0x_platform.h
Datei in Ordnung zu sein. Danke für Ihre Hilfe!
1> >>Building build/vl53l0x_platform.o
1> arm-none-eabi-gcc -ffreestanding -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -g3 -nostartfiles -I"conf" -I"inc" -IC:/Users/sohail/Documents/Cloud/STM32Cube_FW_F4_V1.7.0/Drivers/STM32F4xx_HAL_Driver/Inc -IC:/Users/sohail/Documents/Cloud/STM32Cube_FW_F4_V1.7.0/Drivers/CMSIS/Include -I"C:\Users\sohail\Documents\gcc-arm_launchpad_binaries\lib\gcc\arm-none-eabi\4.9.3\include" -I"C:\Users\sohail\Documents\gcc-arm_launchpad_binaries\arm-none-eabi\include\sys" -I"C:\Users\sohail\Documents\gcc-arm_launchpad_binaries\arm-none-eabi\include" -std=gnu11 -c -o build/vl53l0x_platform.o src/vl53l0x_platform.c
1> In file included from inc/vl53l0x_api.h:33:0,
1> from inc/main.h:44,
1> from inc/vl53l0x_platform.h:34,
1> from src/vl53l0x_platform.c:37:
1> inc/vl53l0x_api_strings.h:39:39: error: unknown type name 'VL53L0X_DEV'
1> VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev, VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
1> ^
Vorverarbeiteten Code prüfen. –
Sie sollten [MCVE] (http://stackoverflow.com/help/mcve) – LPs
Ganz raten: einige der Include enthalten vor 'paltform.h' erfordert' VL53L0X_DEV' Typ? Wenn ja, muss "platform.h" oben auf den anderen Kopfzeilen enthalten sein. – LPs