2016-07-22 17 views
-2

Zum Beispiel habe ich diese c Quelldatei (Auszug)Wie erhalte ich GCC (Xtensa 5.1) Definitionen erkennen

#ifdef USE_OUPUTS 
#pragma message "Outputs" 
static const uint8 outputMap[MAX_OUTPUT] = { RELAY_1, RELAY_2, RELAY_3, RELAY_4, LED }; 
static bool currentOutputs[MAX_OUTPUT]; 
static bool outputOverrides[MAX_OUTPUT]; 

uint8 ICACHE_FLASH_ATTR getOutput(uint8 idx) { 
    return currentOutputs[idx]; 
} 

void ICACHE_FLASH_ATTR setOutput(int id, int value) { 
. 
. 
} 

void ICACHE_FLASH_ATTR initOutput(void) { 
. 
. 
} 
#else 
#pragma message "No Outputs" 

#endif 

ich den Compiler aufrufen (über eine Make-Datei) mit diesem Befehl:

c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -v -DUSE_OUTPUTS=1 -U SLEEP_MODE -Iuser -Icommon/mqtt -Icommon/temperature -Icommon/driver -Iuser/include -Icommon/mqtt/include -Icommon/temperature/include -Icommon/driver/include -Ic:/Espressif/ESP8266_SDK_151/include -Ic:/Espressif/ESP8266_SDK_151/include/driver -Ic:/Espressif/ESP8266_SDK_151/driver -Os -g -O2 -Wmissing-prototypes -Wpointer-arith -Wundef -Werror -Wno-implicit -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH -c user/output.c -o build/user/output.o 

definieren, die die Option hat USE_OUTPUTS bis 1 aber der Compiler gibt diese Nachricht aus dem #pragma eingestellt:

user/output.c:56:9: note: #pragma message: No Outputs 
#pragma message "No Outputs" 
    ^

Kann mir bitte jemand helfen, zu sehen, was ich falsch gemacht habe?

Antwort

0
#ifdef USE_OUPUTS 

Das sagt OUPUTS, nicht OUTPUTS. Sie überprüfen den falschen Makronamen.

+0

Sorry, ich konnte nicht sehen !! –